赞
踩
一、问题
熟悉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有三个参数,如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。