XGBoost数据科学竞赛调参实战(系列文章一)

西财“新网银行杯”数据科学竞赛记录

最近在做之前西财“新网银行杯”数据科学竞赛的题目
比赛地址:
http://www.dcjingsai.com/common/cmpt/%E8%A5%BF%E5%8D%97%E8%B4%A2%E7%BB%8F%E5%A4%A7%E5%AD%A6%E2%80%9C%E6%96%B0%E7%BD%91%E9%93%B6%E8%A1%8C%E6%9D%AF%E2%80%9D%E6%95%B0%E6%8D%AE%E7%A7%91%E5%AD%A6%E7%AB%9E%E8%B5%9B_%E7%AB%9E%E8%B5%9B%E4%BF%A1%E6%81%AF.html

总共用了三个模型来预测客户违约风险,包括传统逻辑回归、lightGBM还有XGBoost,最后采用的是XGBoost,做了三天排名到了12名,A榜线上评分0.75576,记录一下XGBoost的一些调参,希望能够向各位大佬多多学习

1.XGBoost是什么

它是Gradient Boosting算法的一个优化的版本,在各大类数据科学竞赛中除了图像和文本领域,它基本上是霸占了超过一半的比例,所以我觉得学好它还是很有优势的,因为我也是第一次用xgboost来打比赛,所以写的不对或者不足的地方希望和各位多多交流。
比赛环境:lightgbm、xgboost、statesmodel、sklearn、numpy、pandas、matplotlib

2.XGBoost的参数包括三类(这里只是具体说一下我进行调参的参数)

详细的参数大家可以去xgboost官方文档中查看

2.1 通用参数

通用参数包括:

2.1.1 booster(默认gbtree)

这个参数一般都会选择gbtree,毕竟我觉得你如果不用树模型作为提升算法的话也没必要用xgboost。。。

2.1.2 silent(默认0)

0表示模型会输出整个建模的流程,如果不想看起来内容特别多的话就选1就行啦,1表示开启静默模式

2.1.3 nthread

一般不需要输入这个参数,模型会自动检测从而调用所有的CPU进行训练

2.2 Booster 参数

2.2.1 eta(默认0.3)

类似于学习率,减少每一步的权重来提高模型的鲁棒性,一般取值从0.01~0.2

2.2.2 max_depth(默认6)

表示树模型的最大深度,可以避免过拟合,一般用gridsearchCV来自动选择就行

2.2.3 min_child_weight[默认1]

表示最小的子节点的权重的和,这个参数建议大家还是直接用CV来选择吧

2.2.4 gamma(默认0)

这个参数和损失函数息息相关,也建议直接用CV来选择

2.2.5 subsample(默认1)

减小这个参数的值,算法会更加保守,避免过拟合。但是,如果这个值设置得过小,它可能会导致欠拟合。一般取值范围为0.5~1

2.2.6 colsample_bytree(默认1)

用来控制每棵随机采样的列数的占比(每一列是一个特征),一般取值范围为0.5~1

2.2.7 lambda(默认1)

表示l2正则项,减少过拟合,这次调节这个参数使得模型效果提升了0.0003

2.2.8 alpha(默认0)

表示l1正则项,同样用来避免过拟合,比赛中调节这个参数没有提升,所以没有用到

2.3 学习目标参数

2.3.1 objective(默认reg:linear)

因为新网这个比赛是要返回预测的概率,所以这里的参数设置为binary:logistic,表示用二分类的逻辑回归来做

2.3.2 eval_metric(默认值取决于objective参数的取值)

新网这个比赛直接要求用AUC来评估,当然一般也是auc用的多

3.调参方法

3.1 sklearn中的GridSearchCV函数

初始化所有参数

n_estimators参数:这个参数调节的作用很小
max_depth参数:最终取4
min_child_weight参数:最终取6

gamma参数:本次比赛中这个参数调节的作用很小,最终取0
subsample参数:最终取0.67
colsample_bytree参数:最终取0.7

lambda参数:最终取2.22
alpha参数:没有使用

eta参数:学习率参数一般放到最后调试

4.小结

调参对于模型的性能提升还是有较大帮助的,虽然数据预处理和特征工程占到了很大的地位,但是调参的过程也能够帮助我们更好的理解模型和比赛的目的

之后还会写关于逻辑回归做评分卡建模和lightGBM建模的文章,那两个会详细一些,这里只是记录一下,最后再将整理的三个模型的代码放GitHub上面

比赛还提供了无标签的数据集,之后会考虑采用集成模型或者无监督学习看能不能够继续提升效果

新手刚刚开始做数据科学的比赛,希望大家多多指教~

发布了2 篇原创文章 · 获赞 0 · 访问量 178
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览