2016-02-13 15 views
6

私はマルチクラスの分類にXGBClassifier(xgboost内)を使用しています。分類器を実行すると、私はというエラー受け付けております:XGBClassifier num_classが無効です

xgb.XGBClassifier(params, num_class=100) 

私は少しを検索:以下に列挙され、このエラーの原因となった

unexpected keyword argument 'num_class' 

コードを(paramsがXGBためのパラメータの有効なセットです) 'num_class'パラメータはXGBClassifierのscikit実装のために 'n_classes'という名前であることがわかりました。私はこの変更を試してみましたが、同様のエラーを受信:このエラーは、以下に記載されて生じた

unexpected keyword argument 'n_classes' 

コード:

xgb.XGBClassifier(params, num_class=100) 

このエラーを修正中にすべてのヘルプは歓迎です!

答えて

4

Sklearn XGB APIでは、num_classパラメータを明示的に指定する必要はありません。ターゲットが2レベル以上の場合、XGBClassifierは自動的にマルチクラス分類モードに切り替わります。

evals_result = {} 
self.classes_ = list(np.unique(y)) 
self.n_classes_ = len(self.classes_) 

if self.n_classes_ > 2: 
# Switch to using a multiclass objective in the underlying XGB instance 
xgb_options["objective"] = "multi:softprob" 
xgb_options['num_class'] = self.n_classes_ 

ここでは完全なソースコードをチェックしてください:https://github.com/dmlc/xgboost/blob/master/python-package/xgboost/sklearn.py

関連する問題