关闭

XGBoost简易调参指南

标签: 机器学习
2529人阅读 评论(0) 收藏 举报
分类:

本文为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)——即错误率开始从不断下降转为不断上升的时候

通过这几个步骤可以粗略的确定一个比较好的参数组合(不一定是最好的参数组合),这个方法实际上算是一种贪心的策略吧
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:127671次
    • 积分:1549
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:3篇
    • 译文:3篇
    • 评论:204条
    最新评论