微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

参数:{ scale_pos_weight } 可能不会被使用

如何解决参数:{ scale_pos_weight } 可能不会被使用

我正在处理这个警告:

[20:16:09] WARNING: ../src/learner.cc:541: 
Parameters: { scale_pos_weight } might not be used.

  This may not be accurate due to some parameters are only used in language bindings but
  passed down to XGBoost core.  Or some parameters are not used but slip through this
  verification. Please open an issue if you find above cases.

在用 Python 训练 XGBoost 时。

我一直在研究它,这是由于分类类型(二进制或多类)。问题是我正在对不平衡数据(6483252 负数 / 70659 正数)进行二元分类,所以我需要设置该参数以在训练期间考虑这种不平衡,但我不明白为什么我会收到该警告:(

这就是我初始化和训练 XGBoost 的方式:

param = {'n_jobs':-1,'random_state':5,'booster':'gbtree','seed':5,'objective': 'binary:hinge','scale_pos_weight':ratio}
param['eval_metric'] = ['auc','aucpr','rmse','error']

xgb_clf =xgb.XGBClassifier(**param)
xgb_clf.fit(dtrain,y_train)

dtrain 是一个 Pandas 数据框,y_train 是一个带有标签 (0,1) 的 Pandas 系列。

谢谢!

解决方法

可能的修复方法是 2:

  • 您的训练集是多类的,因此参数无效。
  • 实现中的n_jobs问题(将n_jobs设置为0)

这是最常见的问题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。