xgboost
केवल संख्यात्मक कॉलम से संबंधित है।
यदि आप एक सुविधा [a,b,b,c]
जो एक स्पष्ट वेरिएबल बताता है
LabelEncoder का उपयोग करना (कोई संख्यात्मक संबंध यानी) है तो आप बस इस होगा:
array([0, 1, 1, 2])
Xgboost
गलत तरीके के रूप में इस सुविधा की व्याख्या करेगा एक संख्यात्मक संबंध होने! यह सिर्फ एक पूर्णांक के लिए प्रत्येक स्ट्रिंग ('a','b','c')
मानचित्र करता है, और कुछ भी नहीं।
उचित तरीका
OneHotEncoder का उपयोग करके आप अंततः इस के लिए मिल जाएगा:
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
यह xgboost
के लिए एक स्पष्ट चर या किसी अन्य मशीन शिक्षण उपकरण के उचित प्रतिनिधित्व है।
Pandas get_dummies डमी चर बनाने के लिए एक अच्छा टूल है (जो मेरी राय में उपयोग करना आसान है)।
विधि # 2 ऊपर प्रश्न में डेटा का प्रतिनिधित्व नहीं होगा ठीक से
स्रोत
2015-12-18 00:55:20
इस सुविधाओं बनाने नहीं होगा कई श्रेणियों के साथ कम से की तुलना में अधिक दिखाई देते हैं? – eleanora
'Xgboost' कैसे 'सरणी ([1।, 0., ...]) का इलाज करने के लिए जानता है' संख्यात्मक के बजाय स्पष्ट के रूप में? –
@ थिगोगो बाल्बो बस डालें: यह नहीं है। आप मूल वैरिएबल/फीचर/कॉलम को 3 बाइनरी वैरिएबल/फीचर्स/कॉलम के साथ बदल दें। – masu