欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!
对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。
作者:张磊 从事AI医疗算法相关工作
个人微信公众号:
机器学习算法那些事(微信ID:zl13751026985
XGBoost在Kaggle比赛大放异彩,在之前的文章已介绍XGBoost算法原理和XGBoost切分算法,网上对XGBoost参数的解释大部分只停留在表面,对刚入门机器学习算法的人极其不友好,本文在解释某些重要参数的同时会参考数学公式以增加对XGBoost算法原理的理解,并通过分类实例阐述XGBoost调参思想 。
本文的框架和实例来自于https://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/的翻译,并根据自己的理解对内容和代码进行了修改,本文实例只处理训练数据,并以五折交叉验证率作为衡量模型性能的标准 。
代码链接:https://github.com/zhangleiszu/xgboost-
目录
XGBoost算法原理简单回顾
XGBoost的优点
XGBoost的参数解释
参数调优实例
小结
1. XGBoost算法原理简单回顾
XGBoost算法的每颗树都是对前一个模型损失函数的二阶导展开式拟合,然后结合多棵树给出分类或回归结果。因此我们只要知道每棵树的构建过程,就能很好的理解XGBoost的算法原理。
XGBoost法构建树的同时考虑了正则化,定义每棵树的复杂度为:
因此,包含正则化项的损失函数为:
最小化(1.3)式得到最终的目标函数: