梯度提升树(GBDT)完整教程 V1.0 发布
决策树决策树 梯度提升梯度提升 算法算法 Pyt ho n 机器学习机器学习
0. 简介
1. Decision Tree:CART回归树
2. Gradient Boosting:拟合负梯度
3. GBDT算法原理
4. 实例详解
5. 完整源码
6. 总结
7. 参考资料
作者:Freemanz xp (中科⼤ 在读硕⼠)
编辑:榛果(Python与算法社区 编辑)
【尊重原创,转载请注明出处】http://blog.csdn.net/z palyq110/article/details/79527653
已授权发布在公众号:Python与算法社区,如需转载,请联系此公众号.
写在前⾯:写在前⾯: 去年学习GBDT之初,为了加强对算法的理解,整理了⼀篇笔记形式的⽂章,发出去之
后发现阅读量越来越多,渐渐也有了评论,评论中⼤多指出来了笔者理解或者编辑的错误,故重新
编辑⼀版⽂章,内容更加翔实,并且在GitHub上实现了和本⽂⼀致的GBDT简易版(包括回归、⼆
分类、多分类以及可视化),供⼤家交流探讨。感谢各位的点赞和评论,希望继续指出错误~
G ithub:: ht tp s://g it hub .co m/Fre e manz xp/G BDT _Simp le _Tut orial
0. 简介
GBDT 的全称是 Gradient Boosting Decision Tree,梯度提升树,在传统机器学习算法
中,GBDT算的上TOP3的算法。想要理解GBDT的真正意义,那就必须理解GBDT中的Gradient
Boosting 和Decision Tree分别是什么?
1. Decision Tree:CART回归树
⾸先,GBDT使⽤的决策树是CART回归树,⽆论是处理回归问题还是⼆分类以及多分
类,GBDT使⽤的决策树通通都是都是CART回归树。为什么不⽤CART分类树呢?因为GBDT每次
迭代要拟合的是梯度值梯度值 ,是连续值所以要⽤回归树。
对于回归树算法来说最重要的是寻找最佳的划分点,那么回归树中的可划分点包含了所有特征
的所有可取的值。在分类树中最佳划分点的判别标准是熵或者基尼系数,都是⽤纯度来衡量的,但
是在回归树中的样本标签是连续数值,所以再使⽤熵之类的指标不再合适,取⽽代之的是平⽅误
差,它能很好的评判拟合程度。
回归树⽣成算法:回归树⽣成算法:
输⼊:训练数据集 :
输出:回归树 .
在训练数据集所在的输⼊空间中,递归的将每个区域划分为两个⼦区域并决定每个⼦区域上的输出
值,构建⼆叉决策树:
(1)选择最优切分变量 与切分点 ,求解
遍历变量 ,对固定的切分变量 扫描切分点 ,选择使得上式达到最⼩值的对 .
(2)⽤选定的对 划分区域并决定相应的输出值:
§
§
§
评论0
最新资源