XGBClassifier num_class无效

问题描述 投票:6回答:1

我正在使用XGBClassifier(在xgboost中)进行多类分类。执行分类器后,我收到一条错误说明:

unexpected keyword argument 'num_class'

导致此错误的代码如下所示(params是xgb的一组有效参数):

xgb.XGBClassifier(params, num_class=100)

我搜索了一下,发现'num_class'参数被命名为'n_classes',用于XGBClassifier的scikit实现。我尝试了这个更改并收到了类似的错误:

unexpected keyword argument 'n_classes'

导致此错误的代码如下所示:

xgb.XGBClassifier(params, num_class=100)

任何有关修复此错误的帮助表示赞赏!

python xgboost
1个回答
6
投票

在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

© www.soinside.com 2019 - 2024. All rights reserved.