欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!
对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。
作者:张磊 从事AI医疗算法相关工作
个人微信公众号:
机器学习算法那些事(微信ID:zl13751026985)
前言
上文介绍了XGBoost的算法原理并引出了衡量树结构好坏的打分函数(目标函数),根据特征切分点前后的打分函数选择最佳切分点,但并未对节点的切分算法作详细的介绍。本文详细的介绍了XGBoost的切分点算法,内容参考陈天奇博士《XGBoost :A scalable Tree Boosting System》,后台回复XGBoost,获取论文下载链接。
目录
并行原理
切分点算法之贪婪算法
切分点算法之分位点算法
切分点算法之权重分位点算法
稀疏数据的切分算法
总结
1. 并行原理
XGBoost是串行生成CART树,但是XGBoost在处理特征时可以做到并行处理,XGBoost并行原理体现在最优切分点的选择,假设样本数据共M个特征,对于某一轮CART树的构建过程中,选择最佳切分点算法如下图:
1. 红色框表示根据每个特征大小对训练数据进行排序,保存为block结构,block个数与特征数量相等。
2. 绿色宽表示对每个block结构选择最佳特征切分点 ,节点切分标准是目标函数下降的程度,
目标函数含义可参考上文
。3. 黑色框表