解决xgboost.core.XGBoostError: [17:12:src/objective/objective.cc:23: Unknown objective function binary

主要代码如下

from lightgbm.sklearn import LGBMClassifier
xgb = XGBClassifier(boosting_type='gbdt', objective='binary', learning_rate=0.05, n_estimators=5000, num_leaves=31,subsample=0.8, colsample_bytree=0.8, metric='auc')

报错内容提示我们问题应该出在objective='binary'这里,按住ctrl点击objective,发现源代码长这样
在这里插入图片描述
问题根源很明显了,就是objective的赋值出了问题,考虑到我本来也是带算用binary,直接把objective='binary'删除问题就解决了。

最后再看一眼objective是干嘛的,参考博客XGBoost:参数解释objective [ default=reg:linear ]定义学习任务及相应的学习目标,可选的目标函数如下:

  1. “reg:linear” –线性回归。
  2. “reg:logistic” –逻辑回归。
  3. “binary:logistic” –二分类的逻辑回归问题,输出为概率。
  4. “binary:logitraw” –二分类的逻辑回归问题,输出的结果为wTx。
  5. “count:poisson” –计数问题的poisson回归,输出结果为poisson分布。
  6. “multi:softmax” –让XGBoost采用softmax目标函数处理多分类问题,同时需要设置参数num_class(类别个数)
  7. “multi:softprob” –和softmax一样,但是输出的是ndata * nclass的向量,可以将该向量reshape成ndata行nclass列的矩阵。没行数据表示样本所属于每个类别的概率。
  8. “rank:pairwise” –set XGBoost to do ranking task by minimizing the pairwise loss
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值