首页 > 编程语言 >【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)

【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)

时间:2023-01-17 10:03:37浏览次数:45  
标签:模型 学习 BDT 算法 提升 Boosting 优化 AdaBoost


如果需要完整代码可以关注下方公众号,后台回复“代码”即可获取,阿光期待着您的光临~

【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_提升树

文章目录

  • ​​Boosting提升树​​
  • ​​提升树模型​​
  • ​​提升树算法​​
  • ​​优化问题​​

2021人工智能领域新星创作者,带你从入门到精通,该博客每天更新,逐渐完善机器学习各个知识体系的文章,帮助大家更高效学习。

【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_算法_02


Boosting提升树

Boosting思想主要是采用将模型进行串行组合的思想,利用多个弱学习器来学习我们的数据进而形成一个强大的学习器,像AdaBoost就是将我们的基分类器进行线性组合。

本节将讲一种AdaBoost的特例,当AdaBoost+决策树=提升树

提升树模型

AdaBoost采用了一种加法模型,将我们的弱分类器进行线性组合,而且同时使用了前向分步算法进行优化,如果此时我们的弱学习器为决策树的话,此时我们就会得到一种特例,常被叫做提升树。

如果对于分类问题的话,弱学习器一般为二叉分类树,如果对于回归问题来说,弱学习器为二叉回归树。

这里讲个概念就是决策树桩:它的意思就是它是最简单的决策树,只有根节点和两个子节点,即根据是否条件分支获得的树,你比如当 【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_集成学习_03 ,【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_提升树_04 ,如果 【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_提升树_05 , 【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_算法_06

对于提升树的加法模型定义如下:
【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_机器学习_07

  • T:T代表决策树模型
  • M:代表总共有M个弱学习器
  • x:代表样本数据
  • 【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_提升树_08

提升树算法

因为提升树是基于AdaBoost的,所以它的优化算法也是采用了前向分步算法,所以我们需要由前向后一个一个优化我们的树模型,基于这个我们定义当我们优化到m步时,所对应的总模型学习器为:
【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_提升树_09
注意:下标m不是代表第m个分类器,而是代表累积的意思,【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_集成学习_10

【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_机器学习_11 是我们前几步优化好的模型,也就是现在的模型,后面的 【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_算法_12 代表我们当前轮数正在优化的树模型,为了求得优化参数,我们定义极小化经验风险函数,也就是最小化损失函数,来求得 【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_算法_12 中的待优化参数 【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_boosting_14 ,定义损失函数如下:
【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_集成学习_15
我们的目标就是获得:
【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_boosting_16
我们需要解出当前正在优化的树的最优参数,由于 【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_机器学习_11 是前几轮优化后的模型,所以此时可以看作常数,参数只有 【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_提升树_18 中的 【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_集成学习_19

针对于分类问题损失函数一般使用交叉熵,而回归问题更多使用的是MSE均方误差。

即:
【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_提升树_20

优化问题

我们使用前向分步算法进行优化,所以定义初始学习器 【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_提升树_21

所以有:
【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_集成学习_22
在前向分布算法的第m步,给定当前模型 【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_机器学习_11 ,我们目标是要求解:
【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_boosting_16
其中 【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_机器学习_11 代表前 m-1棵树加权的模型,【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_算法_12

对于回归问题,定义MSE平方损失有:
【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_boosting_27
我们进行m次循环,分别优化这个函数,优化加入每个新学习器后的残差和。

写在最后

  一键三连”哦!!!

【机器学习】集成学习(Boosting)——提升树算法(BDT)(理论+图解+公式推导)_算法_28


标签:模型,学习,BDT,算法,提升,Boosting,优化,AdaBoost
From: https://blog.51cto.com/u_15834745/6011932

相关文章