集成学习详细介绍

embedded/2024/9/24 11:44:43/

以下内容整理于:

  1. 斯图尔特.罗素, 人工智能.现代方法 第四版(张博雅等译)
  2. 机器学习_温州大学_中国大学MOOC(慕课)
  3. XGBoost原理介绍------个人理解版_xgboost原理介绍 个人理解-CSDN博客

集成学习(ensemble):选择一个由一系列假设h1, h2, …, hn构成的集合,通过投票、平均或其他形式的机器学习方法将他们的预测进行组合。我们称单独的假设为基模型(base model),其组合后的模型称为集成模型(ensemble model)

集成学习主要有三种集成方法,Bagging(自主聚合法),boosting(提升法) 和stacking(堆叠法)。

在统计学中,有放回的重复采样方法被称为Bootstrap (自助法),Bagging是bootstrap aggregating的缩写。

目录

1. Bagging(自主聚合法)

随机森林模型(Random forest):

2. Boosting(提升法)

boosting%EF%BC%8C%E8%87%AA%E9%80%82%E5%BA%94%E6%8F%90%E5%8D%87%E6%B3%95)%3A-toc" style="margin-left:40px;">AdaBoost(adaptive boosting,自适应提升法):

XGBoost(eXtreme Gradient Boosting,极端梯度提升)算法:

GBDT(Gradient Boosting Decision Tree)算法

LightGBM算法

3. Stacking(堆叠法):


1. Bagging(自主聚合法)

从训练集中进行子抽样组成每个基模型所需要的子训练集,对所有基模型预测的结果进行综合产生最终的预测结果:

Bagging可应用于任何类型的模型,但最常应用于决策树模型。

Bagging的优点:可以并行计算,非常高效。

随机森林模型(Random forest):

随机森林模型是Bagging在决策树模型上应用的一种形式。

主要思想:在分割点的属性选择上进行随机化,具体操作就是,假如我们总共有n个属性,在构建决策树为每个节点选择split属性时,在全部n个属性中随机挑选n1/2(即根号n)个属性作为属性子集(对于分类问题),或选择n/3个属性作为属性子集(对于回归问题),让算法只在这个子集中选择split属性。如此操作,使得随机森林模型实现了众多决策树基模型之间的低关联性或没有关联,而基础的Bagging做不到这一点。


2. Boosting(提升法)

序贯算法,按次序一一训练(实现上可以做到并行),生成一系列基模型。在序贯训练过程中,基模型使用的训练集每次都按照某种策略进行一定的调整。

boosting%EF%BC%8C%E8%87%AA%E9%80%82%E5%BA%94%E6%8F%90%E5%8D%87%E6%B3%95)%3A" style="margin-left:0px;text-align:justify;">AdaBoost(adaptive boosting,自适应提升法):

核心思想:给每个样例赋予一个权重Wj,该权重代表样例在训练过程中应计数的次数,样例的权重越大代表样例在模型训练的过程中发挥的作用越大。自适应提升法从训练集所有样例具有相等的权重wj开始,根据该训练集,我们训练第1个基模型h1,h1会对一些训练样例进行正确分类,而对另一些训练样例错误分类。我们希望第二个基模型能在被分类错误的样例中表现得更好,因此我们将增加在第一个基模型中被错误分类的样例的权重,同时减小在第一个基模型中被正确分类的样例的权重,然后开始训练第2个基模型………………按照次序,训练一系列的基模型。最后将所有基模型按照不同的权重综合成一个集成模型,预测效果比较好的树占有的权重大,预测效果差的基模型占了权重小。

后一个基模型的训练永远是在前一个基模型的基础上完成的!


XGBoost(eXtreme Gradient Boosting,极端梯度提升)算法:

XGBoost算法又快又准确,颇受欢迎!

XGBoost算法是一种加法模型,往模型中不断添加新的树。XGBoost算法将模型上一次预测(由t-1棵树组合而成的模型)产生的误差作为参考建立下一棵树(第t棵树)

加法策略:

初始化(模型中没有树时,其预测结果为0):

往模型中加入第一棵树:

往模型中加入第二棵树:这里的f2即为由上一次预测产生的误差作为参考建立的第2棵树,f2(xi)为第2棵树的预测结果。

…………

往模型中加入第t棵树:

其中表示第棵树,表示组合了棵树的模型对样本的预测结果。

注:一棵树等同于基模型


GBDT(Gradient Boosting Decision Tree)算法

是一种迭代的决策树算法,该算法由多棵决策树组成,GBDT和XGBoost算法很相似,都是累加所有树的结果作为最终结果,两者的区别在于两者对目标函数(即代价函数)的求解过程不同,GBDT算法在求解过程中用到了残差(residual)思想,XGBoost算法在求解过程中用到了n阶泰勒展开的思想。其他方面,两者基本无区别。

GBDT算法的代价函数的部分求解过程:

泰勒展开式:

XGBoost算法的代价函数的部分求解过程:

XGBoost算法代价函数详细求解过程请参考:XGBoost原理介绍------个人理解版_xgboost原理介绍 个人理解-CSDN博客


LightGBM算法

LightGBM算法是以XGBoost算法为基础改进的算法,相较于XGBoost算法,LightGBM算法训练速度更快,内存占用更少。XGBoost算法和LightGBM算法都是目前使用较多的算法

LightGBM与XGBoost相比,主要有以下几个改进:
• 基于梯度的单边采样算法(Gradient-based One-Side Sampling, GOSS);
• 互斥特征捆绑算法(Exclusive Feature Bundling, EFB);
• 直方图算法(Histogram);
• 基于最大深度的 Leaf-wise 的垂直生长算法
LightGBM = XGBoost + GOSS + EFB+ Histogram


3. Stacking(堆叠法):

在相同训练集中使用不同基模型类训练多个基模型,然后将这些基模型组合成集成模型。

将训练好的所有基模型对训练集进行预测,第j个基模型对第i个训练样本的预测值将作为新的训练集中第i个样本的第j个特征值,然后使用(来自基模型预测的)新的训练集和预先留出的验证数据对集成模型进行训练。

这种方法适合于团队分工,团队内的每个人独立工作,使用共同的训练集训练完善自己负责的基模型,最后把每个人的基模型汇聚到一起,建立最终的堆叠集成模型。


http://www.ppmy.cn/embedded/114705.html

相关文章

抖音矩阵系统源码搭建,矩阵系统贴牌,矩阵工具开源

1. 抖音短视频矩阵系统 抖音短视频矩阵系统,是指通过抖音平台,以矩阵的形式进行短视频创作、发布和传播的一种模式。它以多样化的内容、丰富的表现形式、高度的专业化和协同性,吸引了大量用户和创作者的关注。 2. 短视频矩阵系统的优势 2.1 …

VMware Fusion虚拟机Mac版 安装Win10系统教程

Mac分享吧 文章目录 Win10安装完成,软件打开效果一、VMware安装Windows10虚拟机1️⃣:准备镜像2️⃣:创建虚拟机3️⃣:虚拟机设置4️⃣:安装虚拟机(步骤和Win11安装步骤类似,此处相同步骤处没换…

Unity屏幕震动效果

基于Cinemachine 1、为Cinemachine设置拓展 2、选择ImpulseListener 3、为摄像机跟随的角色添加脚本 4、设置Impulse 5、选择类型 6、设置内置6DShake并调节振幅 7、运行时invoke即可

光耦知识分享 | 晶体管光耦与可控硅光耦的区别

晶体管光耦和可控硅光耦是两种常见的光电耦合器件,它们在电子电路中扮演着重要的角色。下面将介绍晶体管光耦和可控硅光耦的区别以及它们的主要应用。 结构区别 晶体管光耦通常由一个发光二极管(LED)和一个光敏晶体管(光控晶体管…

Qt自定义信号、带参数的信号、lambda表达式和信号的使用

整个部分知识通过一个跳转窗口的项目来体现 第一个页面 #include "test.h" #include <qdebug.h> test::test(QWidget *parent): QDialog(parent) {ui.setupUi(this);/** &s 信号发出者* &subWidget::mySignals 处理的信号&#xff0c; &发送者类…

UE5——笔刷Brush工具

在游戏开发中&#xff0c;特别是使用某些游戏引擎如Unreal Engine时&#xff0c;“笔刷”&#xff08;Brush&#xff09;是一种特殊的Actor&#xff08;游戏世界中的一个实体&#xff09;&#xff0c;用于描述3D几何形状&#xff0c;如立方体、球体或其他基本几何体。笔刷主要用…

在系统总线的数据线上,不可能传输的是()。

在系统总线的数据线上&#xff0c;不可能传输的是 A&#xff0e;指令 B&#xff0e;操作数 C&#xff0e;握手&#xff08;应答&#xff09;信号 D&#xff0e;中断类型号 答案&#xff1a;在系统总线的数据线上&#xff0c;不可能传输的是&#xff1a; C. 握手&#xff08;应…

梧桐数据库(WuTongDB):postgresql 12的CBO(Cost-Based Optimizer)优化器

PostgreSQL 12 的 CBO&#xff08;基于代价的优化器&#xff0c;Cost-Based Optimizer&#xff09;是其查询优化的核心组件&#xff0c;用于生成高效的查询执行计划。PostgreSQL 的 CBO 通过估算各种执行路径的代价&#xff0c;选择最优的路径来执行 SQL 查询。 PostgreSQL 12…