【问题标题】:XGBClassifier num_class is invalidXGBClassifier num_class 无效
【发布时间】:2016-05-24 22:09:51
【问题描述】:

我正在使用 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】:

    在 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      • 2021-06-21
      相关资源
      最近更新 更多