集成学习

集成学习

随机森林

AdaBoost 算法

提升树

梯度提升树(GBDT)

XGBoost



一、个体与集成

集成学习(ensemble learning)通过构建并结合多个学习器完成学习任务。

集成学习可用于分类问题集成、回归问题集成、特征选取集成、异常点检测集成等。

集成学习思想:通过训练若干个个体学习器,再用某种结合策略,最终形成一个强学习器。


个体学习器有两种选择:

所有个体学习器是同种类型,即 “同质” 的。同质集成中个体学习器也称 “基学习器”、“弱学习器”。

比如个体学习器都是由 C4.5 决策树算法 或 都是由 BP 神经网络算法从训练集产生。

所有个体学习器不是同种类型,即 “异质” 的。异质集成中的学习器也称 “组件学习器” 或直接称个体学习器。

比如个体学习器由 SVM、逻辑回归、朴素贝叶斯等不同算法产生。


一般说的集成学习方法都是指同质个体学习器。

同质个体学习器按照个体学习器之间是否存在依赖关系分两类:

① 个体学习器之间存在强依赖关系,必须串行生成的序列化方法。代表算法 Boosting 系列算法

② 个体学习器之间不存在强依赖关系,可同时生成的并行化方法。代表算法 Bagging、随机森林系列算法



二、Boosting

Boosting 算法,基学习器之间存在强依赖关系,用一张图概括如下:

Boosting 工作机制:先从训练集用初始权重训练出一个基学习器,根据基学习器的学习误差率来更新训练样本的权重,使学习误差率高的样本的权重变高,在后续受到更多关注。如此重复进行,直到基学习器的个数达到指定值 T,最终将 T 个基学习器进行加权结合。

Boosting 系列算法代表 Adaboost 算法、梯度提升树(Gradient Boosting Decision TreeGBDT)、XGBoostLightBGM



三、Bagging

Bagging 算法,基学习器之间不存在依赖关系,用一张图概括如下:

Bagging 流程:从训练集用自助采样法采出 T 个含 m 个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将基学习器结合。

自助采样法:即有放回的抽样法,采集跟训练集个数 m 相同的样本,采集 T 次,得到采样集。

对于一个样本,每次被采集的概率为 1m

m 次采样中没被采集到的概率:

p()         =(11m)m

m 取极限:

limm(11m)m=1e0.368

也就是初始训练集约有 63.2% 的样本在采样集中,36.8% 没被采集。

对于 36.8% 没被采集的数据,称为 “袋外数据”。这些数据没参与训练集的模型拟合,但可作为测试集用于测试模型的泛化能力,这样的测试结果称为 "包外估计"。

随机森林Bagging 的一个扩展,RF基学习器都是 CART 决策树,并且在决策树的训练过程中,引入特征的随机选择



四、结合策略

假设集成包含 T 个基学习器 {h1,h2,...hT}hi 在示例 xx 上的输出为 hi(xx)


1.平均法

数值型回归问题,常见的结合策略是平均法。

① 简单平均法(simple averaging

H(x)=1Ti=1Thi(xx)

② 加权平均法(weighted averaging

H(x)=i=1Tωihi(xx)ωi0,    i=1Tωi=1


2.投票法

分类问题,常见的结合策略是投票法。假设预测类别是 {c1,c2,...,cK},对任意的一个预测样本 xxT 个弱学习器的预测结果分别是 (h1(xx),h2(xx),...,hT(xx)).

相对多数投票法,即预测为得票最多的标记,若同时有多个标记获得最高票,随机选取一个。

绝对多数投票法,在相对投票法的基础上,不光要求票数最多,还要求票数过半,否则拒绝预测。

加权投票法,和加权平均法类似,每个基学习器乘以一个权重,最终将各个类别的加权票数求和,最大的值对应的类别为最终类别。


3.学习法

代表方法 stacking,该结合策略不是对基学习器的结果做简单的逻辑处理,而是再加上一层学习器,将训练集的基学习器的学习结果作为输入,训练集的输出作为输出,重新训练一个学习器得到最终的结果。

这种情况下,基学习器称为初级学习器,用于结合的学习器称为次级学习器。对于测试集,首先用初级学习器预测一次,得到次级学习器的输入,再用次级学习器预测一次,得到最终的结果。



posted @   做梦当财神  阅读(875)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2018-01-09 机器学习算法中随机数的生成
点击右上角即可分享
微信分享提示