7

マルチクラス分類に XGBClassifier (xgboost) を使用しています。分類子を実行すると、次のようなエラーが表示されます。

unexpected keyword argument 'num_class'

このエラーの原因となったコードを以下に示します (params は xgb の有効なパラメーターのセットです)。

xgb.XGBClassifier(params, num_class=100)

少し検索したところ、「num_class」パラメーターは、XGBClassifier の scikit 実装の「n_classes」という名前であることがわかりました。この変更を試みたところ、同様のエラーが発生しました。

unexpected keyword argument 'n_classes'

このエラーの原因となったコードを以下に示します。

xgb.XGBClassifier(params, num_class=100)

このエラーを修正するための助けをいただければ幸いです!

4

1 に答える 1

8

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

于 2016-02-21T22:55:24.013 に答える