2016-10-18 11 views
6

के बराबर होना चाहिए। मैं XGBClassifier रैपर का उपयोग करने की कोशिश कर रहा हूं sklearn द्वारा मल्टीक्लास समस्या के लिए। मेरी कक्षाएं [0, 1, 2] हैं, जिसका उद्देश्य मैं उपयोग करता हूं multi:softmax है। जब मैं वर्गीकारक फिट करने के लिए कोशिश कर रहा हूँ मैंxgboost sklearn wrapper value 0 पैरामीटर num_class के लिए 1

xgboost.core.XGBoostError: value 0for Parameter num_class should be greater equal to 1

मिल रहा num_class पैरामीटर सेट करने के लिए मैं त्रुटि

got an unexpected keyword argument 'num_class'

पाने की कोशिश करते हैं

Sklearn इस पैरामीटर स्वचालित रूप से स्थापित कर रही है तो मैं पारित करने के लिए माना जाता नहीं कर रहा हूँ वह तर्क लेकिन मुझे पहली त्रुटि क्यों मिलती है?

उत्तर

3

आप की जरूरत मैन्युअल xgb_param यदि आप अपने fit विधि का उपयोग

# Model is an XGBClassifier 
    xgb_param = model.get_xgb_params() 
    xgb_param['num_class'] = 3 
    cvresult = xgb.cv(xgb_param, ...) 

XGBClassifier स्वचालित रूप से यह मान सेट करता है करने के लिए पैरामीटर num_class जोड़ने के लिए, लेकिन cv विधि में नहीं है

-1

क्या आप xgboost.cv फ़ंक्शन का उपयोग कर रहे हैं? मुझे एक ही समस्या का सामना करना पड़ा लेकिन समाधान मिला।

xgb_param = model.get_xgb_params() 
    extra = {'num_class': 3} 
    xgb_param.update(extra) 
    cvresult = xgb.cv(xgb_param, xgtrain, ...) 

xgb_param XGBoost मॉडल मापदंडों के शब्दकोश है: यहाँ मेरी कोड है। फिर मैं num_class निर्दिष्ट करने के लिए extra पर एक नया निर्देश जोड़ता हूं, cv फ़ंक्शन पर नया निर्देश पास करें। यह काम।

संबंधित मुद्दे