क्या मल्टीलाबेल वर्गीकरण के लिए xgboost का उपयोग करना संभव है? अब मैं sklearn से GradientBoostingClassifier पर OneVsRestClassifier का उपयोग करता हूं। यह काम करता है, लेकिन मेरे सीपीयू से केवल एक कोर का उपयोग करें। मेरे डेटा में मेरे पास ~ 45 विशेषताएं हैं और कार्य बाइनरी (बूलियन) डेटा के साथ लगभग 20 कॉलम की भविष्यवाणी करना है। मीट्रिक औसत औसत परिशुद्धता है (मानचित्र @ 7)। यदि आपके पास कोड का एक छोटा सा उदाहरण है तो यह grate जाएगा ...एक्सजी बूस्ट?
उत्तर
XGBoost बहु-लेबल वर्गीकरण के लिए उपयोग किया जा सकता है। मॉडल को प्रशिक्षण देने से पहले आपको लेबल को एन्कोड करना होगा; मैं sklearn के लेबल एन्कोडर की सलाह देते हैं।
एक sklearn के दस्तावेज़ से उदाहरण संशोधित:
# initialize the encoder
>>> le = preprocessing.LabelEncoder()
# fit to the existing labels, your y_train
>>> y_train = ["paris", "paris", "tokyo", "amsterdam"]
>>> y_train_encoded = le.fit_transform(y_train)
# pass some new data to transform, your y_test
>>> y_test = ["tokyo", "tokyo", "paris"]
>>> y_test_encoded = le.transform(y_test)
>>> print y_test_encoded
array([2, 2, 1])
एक बार यह एन्कोडिंग पूरा हो गया है, आप भविष्यवाणी करने के लिए XGBoost उपयोग कर सकते हैं। आपके वाई डेटाफ्रेम अब संख्यात्मक रूप से एन्कोड किए गए हैं, इसके बजाय वे किस प्रकार के थे। यह एकमात्र तरीका है XGBoost पायथन में वर्गीकरण को समझ सकता है।
अगला, आप अपने परीक्षण डेटा पर अपने XGBoost को तुरंत चालू कर सकते हैं और .fit() को अपने प्रशिक्षण डेटा पर और .predict() पर कॉल कर सकते हैं।
मुझे उम्मीद है कि मैंने XGBoost का उपयोग कैसे किया है, लेकिन कृपया टिप्पणियों में और प्रश्न पूछने के लिए स्वतंत्र महसूस करें।
नहीं, यह मल्टीकास वर्गीकरण है। मल्टीलाबेल वर्गीकरण में उत्तर के रूप में टोकी, एस्टरटर्ड और पेरिस एक साथ संभव हैं। या केवल एक शहर - भी संभव जवाब है। – user3318023
जिस तरह से मैं समस्या से संपर्क करूंगा, विभिन्न संयोजनों के लिए अद्वितीय आउटपुट वर्गीकरण बनाना होगा। कुछ हद तक हैक, लेकिन यह मेरा त्वरित और गंदा दृष्टिकोण होगा। माफ़ी, मुझे अपनी विचार प्रक्रिया को और स्पष्ट करना चाहिए था। – root
वहाँ तरीके कि, जिनमें से एक एक आप पहले से ही सुझाव दिया है करने के लिए के एक जोड़े हैं:
1.
from xgboost import XGBClassifier
from sklearn.multiclass import OneVsRestClassifier
# If you want to avoid the OneVsRestClassifier magic switch
# from sklearn.multioutput import MultiOutputClassifier
clf_multilabel = OneVsRestClassifier(XGBClassifier(**params))
clf_multilabel
वर्ग प्रति एक द्विआधारी वर्गीकारक फिट होगा, और यह प्रयोग करेंगे हालांकि params
में आपके द्वारा निर्दिष्ट कई कोर (fyi, आप n_jobs
को OneVsRestClassifier
में भी निर्दिष्ट कर सकते हैं, लेकिन यह अधिक मेमोरी खाता है)।
2. आप पहली बार k
सही लेबल है कि हर डेटा बिंदु के k
प्रतियां बनाने से एक छोटे से अपने डेटा की मालिश हैं, तो आप एक सरल multiclass समस्या के लिए अपना रास्ता हैक कर सकते हैं। उस बिंदु पर, सिर्फ
clf = XGBClassifier(**params)
clf.fit(train_data)
pred_proba = clf.predict_proba(test_data)
प्रत्येक वर्ग के लिए वर्गीकरण मार्जिन/संभावनाओं हो और फैसला एक लेबल की भविष्यवाणी के लिए किस सीमा आप चाहते हैं। ध्यान दें कि यह समाधान सटीक नहीं है: यदि किसी उत्पाद में (1, 2, 3)
टैग हैं, तो आप कृत्रिम रूप से प्रत्येक वर्ग के लिए दो नकारात्मक नमूने पेश करते हैं।
- 1. एक्सजी मिडी फ़ाइल प्रारूप
- 2. एक्सजी इंटेलिजेंस डेटा
- 3. ऐप इंजन में एक्सजी क्रॉस ग्रुप लेनदेन जावा जेडीओ
- 4. बूस्ट
- 5. बूस्ट
- 6. बूस्ट
- 7. बूस्ट
- 8. बूस्ट
- 9. बूस्ट
- 10. बूस्ट
- 11. बूस्ट
- 12. बूस्ट
- 13. बूस्ट
- 14. बूस्ट
- 15. बूस्ट
- 16. बूस्ट
- 17. बूस्ट
- 18. बूस्ट
- 19. बूस्ट :: पायथन और बूस्ट :: थ्रेड
- 20. व्यक्तिगत बूस्ट पुस्तकालयों के साथ संकलन, बूस्ट
- 21. बूस्ट :: विभिन्न बूस्ट संस्करणों के साथ TIME_UTC (_)
- 22. बूस्ट :: regex_search
- 23. बूस्ट लाइब्रेरी
- 24. बूस्ट :: इकाइयों
- 25. बूस्ट लाइब्रेरी
- 26. बूस्ट :: वेरिएंट
- 27. बूस्ट :: भावना
- 28. बूस्ट (सी ++)
- 29. बूस्ट :: हैश
- 30. बूस्ट थ्रेड -
क्या आप इसे समझने में सक्षम थे? यदि ऐसा है तो कृपया एक समाधान प्रदान करें। – iOSBeginner