xgboost 逻辑回归:objective参数(reg:logistic,binary:logistic,binary:logitraw,)对比分析

一、问题

熟悉xgboost的小伙伴都知道,它在训练模型时,有train()方法和fit()方法,两种方法都是用于构建模型的,然而在使用过程中有什么不同的地方呢,这篇文章带领大家一起来看一下。train方法使用如下:

params ={'eta': 0.1,
          'max_depth': 4,
          'num_boost_round':20,
          'objective': 'reg:logistic',
          'random_state': 27,
          'silent':0
        }
model = xgb.train(params,xgb.DMatrix(x_train, y_train))
train_pred=model.predict(xgb.DMatrix(x_test))

而fit方法是直接使用xgboost封装好的XGBClassifier或者XGBRegressor时使用:

model = XGBClassifier(
    learning_rate=0.1,
    n_estimators=20,
    max_depth=4,
    objective='binary:logistic',
    seed=27,
    silent=0
    )
model.fit(x_train,y_train,verbose=True)
fit_pred=model.predict(x_test)
print fit_pred

相同的数据集,相同的参数得到的预测值却是不一样的,fit_pred的值是0,1的具体的预测标签,train_pred的值是0-1之间的概率值;为什么结果是不一样的呢?如何把0-1之间的概率值映射成0,1标签呢?这个后面揭晓,我们先看下,xgboost中用于做逻辑回归的objective的参数都有哪些,得到预测结果有什么不同!

二、objective参数比较

xgboost官方文档关于逻辑回归objective有三个参数,如下:

  • 16
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值