如果需要完整代码可以关注下方公众号,后台回复“代码”即可获取,阿光期待着您的光临~
文章目录
- Boosting提升树
- 提升树模型
- 提升树算法
- 优化问题
2021人工智能领域新星创作者,带你从入门到精通,该博客每天更新,逐渐完善机器学习各个知识体系的文章,帮助大家更高效学习。
Boosting提升树
Boosting思想主要是采用将模型进行串行组合的思想,利用多个弱学习器来学习我们的数据进而形成一个强大的学习器,像AdaBoost就是将我们的基分类器进行线性组合。
本节将讲一种AdaBoost的特例,当AdaBoost+决策树=提升树。
提升树模型
AdaBoost采用了一种加法模型,将我们的弱分类器进行线性组合,而且同时使用了前向分步算法进行优化,如果此时我们的弱学习器为决策树的话,此时我们就会得到一种特例,常被叫做提升树。
如果对于分类问题的话,弱学习器一般为二叉分类树,如果对于回归问题来说,弱学习器为二叉回归树。
这里讲个概念就是决策树桩:它的意思就是它是最简单的决策树,只有根节点和两个子节点,即根据是否条件分支获得的树,你比如当 , ,如果 ,
对于提升树的加法模型定义如下:
- T:T代表决策树模型
- M:代表总共有M个弱学习器
- x:代表样本数据
提升树算法
因为提升树是基于AdaBoost的,所以它的优化算法也是采用了前向分步算法,所以我们需要由前向后一个一个优化我们的树模型,基于这个我们定义当我们优化到m步时,所对应的总模型学习器为:
注意:下标m不是代表第m个分类器,而是代表累积的意思,
是我们前几步优化好的模型,也就是现在的模型,后面的 代表我们当前轮数正在优化的树模型,为了求得优化参数,我们定义极小化经验风险函数,也就是最小化损失函数,来求得 中的待优化参数 ,定义损失函数如下:
我们的目标就是获得:
我们需要解出当前正在优化的树的最优参数,由于 是前几轮优化后的模型,所以此时可以看作常数,参数只有 中的
针对于分类问题损失函数一般使用交叉熵,而回归问题更多使用的是MSE均方误差。
即:
优化问题
我们使用前向分步算法进行优化,所以定义初始学习器
所以有:
在前向分布算法的第m步,给定当前模型 ,我们目标是要求解:
其中 代表前 m-1棵树加权的模型,
对于回归问题,定义MSE平方损失有:
我们进行m次循环,分别优化这个函数,优化加入每个新学习器后的残差和。
写在最后
一键三连”哦!!!