2016-10-18 26 views
6

'a eşit olmalıdır. Çok katmanlı bir sorun için sklearn tarafından sağlanan XGBClassifier sarıcısını kullanıyorum. Derslerim [0, 1, 2], kullandığım hedef multi:softmax. Ben sınıflandırıcı sığdırıyorum zaman hatasıxgboost sklearn sarmalayıcı değeri 0için Parametre num_class değeri 1

got an unexpected keyword argument 'num_class'

olsun num_class parametresini ayarlamak çalışırsanız ben

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

olsun Sklearn otomatik yüzden geçmesine sözde değil bu parametreyi ayarlıyor

bu argüman. Ama neden ilk hatayı aldım?

cevap

3

elle onun fit yöntemi kullanırsanız

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

XGBClassifier Bu değeri otomatik olarak ayarlanır gelmez xgb_param parametresini num_class eklemek gerekir, ancak cv yöntemde değil

-1

xgboost.cv işlevini kullanıyor musunuz? Aynı problemlerle karşılaştım ama çözümü buldum.

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

xgb_param XGBoost modeli parametrelerinin sözlüğü: İşte benim kodudur. Sonra belirtmek için yeni bir dict extra eklemek, yeni dict cv işlevine geçirin. Bu çalışıyor.