XGBoost简易调参指南

本文为kaggle上一位选手分享的xgboost调参经验的翻译。方便对xgboost模型参数的快速调试。

原文:https://www.kaggle.com/c/bnp-paribas-cardif-claims-management/forums/t/19083/best-practices-for-parameter-tuning-on-models

数据的划分:一般从训练集里划分20%作为验证集,简易的调参不做交叉验证,因为交叉验证实在是耗费时间。

模型参数的初始化:

  • 模型类型:根据问题(二分类,多分类,回归等)选择合适的模型类型
  • 初始参数:eta= 0.1, depth= 10, subsample=1.0, min_child_weight = 5, col_sample_bytree = 0.2(depends on feature size)
  • nround:xgboost的轮数,直接设置为10000,若error开始不断变高(或auc不断变低),直接中断程序运行即可
调参
1)先调整depth,一般depth与其他参数关联性不大,故第一个调整。首先将其初始化为10,训练模型观察最优结果。再将其调整为8,若效果变差则调整为12。用这种方法逐步接近最好的参数。
2)然后调整subsample,初始化为1,观察结果。调整为0.8,若变好则继续下调一点看看,否则则改回0.9。若0.9的效果还不好则改回1
3)用与depth相同的方法调整min_child_weight
4)然后调整col_sample_bytree
5)最后将eta设置为0.05(或者更低一点),训练模型并观察,记录最优的训练轮数(num_round)——即错误率开始从不断下降转为不断上升的时候

通过这几个步骤可以粗略的确定一个比较好的参数组合(不一定是最好的参数组合),这个方法实际上算是一种贪心的策略吧
发布了33 篇原创文章 · 获赞 225 · 访问量 50万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章