集成学习boosting算法:AdaboostGBDTXgboostLightGBMCatBoost
Adaboost&GBDT&Xgboost&LightGBM&CatBoost
- 0简介
- 0.0发展史
- 0.1 经典文章链接/文章总结链接
- 0.2 bagging和boosting
- 0.3 简记
- 0.3.0 mean_squared_error
- 1 Adaboost
- 2 GBDT
- 3 Xgboost
- LightGBM
- CatBoost
- 6 问题
- 6.1 RF和GBDT之间区别
- 6.2 XGBoost和GBDT之间区别
- 6.3 XGBoost是如何防止过拟合的
- 6.4 GBDT中的步长
- 6.5 boosting和bagging区别
- 6.6 GBDT优缺点
- 6.7 XGBoost优缺点
- 总体来说,boosting算法还是需要大量的数据集的,因为模型相对于单一的学习器来说还是比较复杂的,数据简单就更不能用subsample了
0简介
0.0发展史
年份 | 算法/理论 | 成就/改进 |
---|---|---|
1988 | General Boosting | 先前的弱评估器上预测错误的样本应该在后续得到更多关注 |
1997 | AdaBoost |
从0到1,首次在工程上实现了boosting理论 确立了决策树作为弱评估器,生长规则为C4.5 自适应地调整数据分布 自适应地计算每个弱分类器的权重 |
2000 |
GBDT 在ADB基础上改进 |
更新损失函数L(x,y)L(x,y)L(x,y),在数学流程上推广到任意可微函数 放弃调整数据分布、放弃弱分类器权重 自适应地调整后续弱评估器拟合的目标 |
2014 |
XGBoost 在GBDT基础上改进 |
更新损失函数L(x,y)L(x,y)L(x,y),在损失函数中加入正则项 改进弱评估器f(x)f(x)f(x)生长规则,自适应地调整后续弱评估器的结构 改进拟合中的数学过程,提升拟合精度 首次在工程上实现了boosting树的并行,提升运算速度 支持GPU加速 |
2016 |
LGBM 在GBDT基础上改进 受XGBoost启发 |
改进弱评估器f(x)f(x)f(x)生长规则,自适应地调整后续弱评估器的结构 设计了适合于GBDT的数据分布调整方式GOSS,自适应地调整数据分布 设计了加速弱分类器分枝的计算方式EFB,在工程上大幅度降低了运算时间与内存消耗 支持GPU加速 |
2017 |
CatBoost 在GBDT基础上改进 受XGBoost启发 |
改进弱评估器f(x)f(x)f(x)生长规则,自适应地调整后续弱评估器的结构 设计了适用于梯度下降的弱分类器权重调整方式,自适应地调整弱分类器的权重 改进离散型变量的分枝方式,提升拟合精度 支持GPU加速 |
0.1 经典文章链接/文章总结链接
GBDT算法推导-------刘建平
XGBoost 知乎答主写的这一篇太棒了
XGBoost算法参数---------刘建平
GBDT和XGBoost区别
B站菜菜的机器学习
0.2 bagging和boosting
bagging实际上本质就是通过单一的弱模型通过加权或投票等(可以并行)的方式生成新的强学习器,我们常见的还是通过多个决策树级集成形成的强学习器随机森林,本质上和模型融合相似,不过模型融合主要是融合不同的模型,也就是多种模型集成形成的集成模型。
boosting是通过若干个弱评估器通过递进的方式集成形成的强学习器,bagging可能是由多个强学习器组成弱评估器,boosting是弱评估器,效果为啥在一定程度上比bagging更加有效?是因为boosting还是通过想着损失函数极小化方向进行,虽然说是弱评估器,叠加起来却能很好的拟合结果,并在一定程度上抗过拟合的发生,但是也不能说不可能发生过拟合,毕竟boosting算法是较为复杂的学习器,在样本数据集简单时还是很容易发生过拟合的现象,抗过拟合的能力还是相对于bagging特别是随机森林来说的。
Boosting PK Bagging
装袋法 Bagging | 提升法 Boosting | |
---|---|---|
弱评估器 | 相互独立,并行构建 |
相互关联,按顺序依次构建 先建弱分类器的预测效果影响后续模型的建立 |
建树前的抽样方式 |
样本有放回抽样 特征无放回抽样 |
样本有放回抽样 特征无放回抽样 先建弱分类器的预测效果可能影响抽样细节 |
集成的结果 |
回归平均 分类众数 |
每个算法具有自己独特的规则,一般来说: (1) 表现为某种分数的加权平均 (2) 使用输出函数 |
目标 |
降低方差 提高模型整体的稳定性来提升泛化能力 本质是从“平均”这一数学行为中获利 |
降低偏差 提高模型整体的精确度来提升泛化能力 相信众多弱分类器叠加后可以等同于强学习器 |
单个评估器容易 过拟合的时候 |
具有一定的抗过拟合能力 | 具有一定的抗过拟合能力 |
单个评估器的效力 比较弱的时候 |
可能失效 | 大概率会提升模型表现 |
代表算法 | 随机森林 | 梯度提升树,Adaboost |
在以随机森林为代表的Bagging算法中,我们一次性建立多个平行独立的弱评估器,并让所有评估器并行运算。在Boosting集成算法当中,我们逐一建立多个弱评估器(基本是决策树),并且下一个弱评估器的建立方式依赖于上一个弱评估器的评估结果,最终综合多个弱评估器的结果进行输出,因此Boosting算法中的弱评估器之间不仅不是相互独立的、反而是强相关的,同时Boosting算法也不依赖于弱分类器之间的独立性来提升结果,这是Boosting与Bagging的一大差别。如果说Bagging不同算法之间的核心区别在于靠以不同方式实现“独立性”(随机性),那Boosting的不同算法之间的核心区别就在于上一个弱评估器的评估结果具体如何影响下一个弱评估器的建立过程。
与Bagging算法中统一的回归求平均、分类少数服从多数的输出不同,Boosting算法在结果输出方面表现得十分多样。早期的Boosting算法的输出一般是最后一个弱评估器的输出,当代Boosting算法的输出都会考虑整个集成模型中全部的弱评估器。一般来说,每个Boosting算法会其以独特的规则自定义集成输出的具体形式,但对大部分算法而言,集成算法的输出结果往往是关于弱评估器的某种结果的加权平均,其中权重的求解是boosting领域中非常关键的步骤。
依据上一个弱评估器f(x)t−1f(x)_{t-1}f(x)t−1的结果,计算损失函数L(x,y)L(x,y)L(x,y),
并使用L(x,y)L(x,y)L(x,y)自适应地影响下一个弱评估器f(x)tf(x)_tf(x)t的构建。
集成模型输出的结果,受到整体所有弱评估器f(x)0f(x)_0f(x)0 ~ f(x)Tf(x)_Tf(x)T的影响。
0.3 简记
0.3.0 mean_squared_error
sklearn.metrics.mean_squared_error( y_true, # 真实值y_pred, # 预测值squared=True, # True 表示MSE均方误差# False 表示RMSE均方根误差)
1 Adaboost
https://blog.csdn.net/weixin_54884881/article/details/126001037?spm=1001.2014.3001.5502
2 GBDT
https://blog.csdn.net/weixin_54884881/article/details/126000988?spm=1001.2014.3001.5502
3 Xgboost
https://blog.csdn.net/weixin_54884881/article/details/126004133
LightGBM
CatBoost
6 问题
6.1 RF和GBDT之间区别
6.2 XGBoost和GBDT之间区别
6.3 XGBoost是如何防止过拟合的
6.4 GBDT中的步长
6.5 boosting和bagging区别
6.6 GBDT优缺点
6.7 XGBoost优缺点
集成学习boosting算法:AdaboostGBDTXgboostLightGBMCatBoost相关推荐
- 04 集成学习 - Boosting - AdaBoost算法构建
03 集成学习 - Boosting - AdaBoost算法原理 十.AdaBoost算法构建 上一章最后说明了每个基模型的权值α是如何求得的,于是我就可以对模型进行更新操作了. 构建过程一 1.假 ...
- 集成学习-Boosting集成学习算法GBDT
GBDT算法的核心为:先构造一个(决策)树,然后不断在已有模型和实际样本输出的残差上再构造一颗树,依次迭代. 目录 Decistion Tree(决策树) Gradient Boosting(梯度提升 ...
- 笔记—集成学习—Boosting
集成学习--Boosting 一.引言 在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型.但是,实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模 ...
- 【机器学习】集成学习及算法详解
集成学习及算法详解 前言 一.随机森林算法原理 二.随机森林的优势与特征重要性指标 1.随机森林的优势 2.特征重要性指标 三.提升算法概述 四.堆叠模型简述 五.硬投票和软投票 1.概念介绍 2.硬 ...
- 【机器学习】集成学习—Boosting—GBM(Gradient Boosting Machine)解析
[机器学习]集成学习-Boosting-GBM(Gradient Boosting Machine)解析 文章目录 [机器学习]集成学习-Boosting-GBM(Gradient Boosting ...
- 机器学习 - [集成学习]Bagging算法的编程实现
机器学习 - [集成学习] Bagging算法的编程实现 李俊才 的 CSDN 博客:https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343 ...
- 机器学习实战-54: 集成学习分类算法(ada-boost)
集成学习分类算法 深度学习原理与实践(开源图书)-总目录,建议收藏,告别碎片阅读! 集成学习分类算法(ada-boost)属于监督学习算法.常用分类算法包括:逻辑回归(Logistic Regress ...
- 集成学习——Boosting(AdaBoost,Gradient Boosting)
集成学习--Boosting 与bagging方法不同,boosting中各个分类器串行生成,第Hn个分类器会受到Hn-1个分类器的影响.其主要思想是使下一个分类器更加关注于在上一个分类器上不能很好预 ...
- 【AdaBoost算法】集成学习——AdaBoost算法实例说明
[AdaBoost算法]集成学习--AdaBoost算法实例说明 AdaBoost算法是数据挖掘十大算法之一,但是部分参考书上只给了该算法的数学推导过程,具体的流程并未详细举例加以解释,因此不利于学习 ...
最新文章
- Unicorn 4.6.3 发布,Rack的HTTP服务器
- 千兆宽带:是为了速度而提升速度吗?
- virtual box卸载后无法正常安装
- ThreadLocal的意义和实现
- c++预处理命令 #include用法
- 判断是否为微信环境下打开的网页
- angelica类似_亲爱的当归(Angelica)是第一个让我哭泣的VR体验
- MXNet结合kubeflow进行分布式训练
- win7分区软件_小编给你传授 win7系统给硬盘分区的修复方案 -win7系统使用教程...
- myeclipse 快捷键(转载)
- 一些编程习惯和问题记录--不定期更新
- ASP.NET页面刷新的几种方法
- stm32以中断方式扫描矩阵键盘
- jdbc mysql emoji 读取_mysql/Java服务端对emoji的支持
- 高通(Qualcomm)LK源码深度分析(三)
- 微软WIN7系统瘦身全攻略
- iphone12绿色好看 iphone12系列哪个颜色好看
- 小蓝本 第一本 《因式分解技巧》 第八章 多项式的一次因式 笔记 (第八天)
- com.android.ide.common.signing.KeytoolException: Failed to read key AndroidDebugKey from store
- 陈春章数字集成电路物理设计阅读笔记