机器学习(八)~集成学习

1. 集成学习

集成学习通过将多个弱学习器结合,获得比单一学习器显著优越的泛化性能

根据个体学习器的种类可分为同质集成与异质集成:

同质集成: 同类型的个体学习器集成,例如“决策树集成”中全是决策树,“神经网络集成”中全是神经网络…同质集成中的个体学习器也称“基学习器”

异质集成: 不同类型的个体学习器集成

根据个体学习器的生成方式可分为两类:

1) 个体学习器之间存在强依赖关系,必须串行化生成的序列化方法,这一类的代表是Boosting(常见的算法有Adaboost、GBDT);

2) 个体学习器之间不存在强依赖关系,可以并行化生成每个个体学习器,这一类的代表是Bagging(常见的算法有RandomForest)。

2. Boosting

2.1 Boosting工作机制

工作机制:
1) 先从初始训练集训练出一个基学习器
2) 根据基学习器的表现对训练样本分布进行调整,使得误分类样本更受关注
3) 基于调整后的训练样本训练下一个基学习器
4) 重复进行,直至学习器数目达到事先指定的T(基学习器的个数是我们需要调试的超参,通过交叉验证来选择)
5) 最终将这T个基学习器进行加权结合

注:对于无法接受带权样本的基学习算法,可通过“重采样法”处理

  • 两种方法无显著优劣差别,因为Boosting算法每一轮都要判定当前生成的基学习器是否满足条件,一旦不满足则被抛弃,可能还未达到初始设置学习轮数T学习过程就停止,“重采样法”有利于重新启动训练避免早停止,即当break不满足条件的基学习器后,可根据当前分布重新对训练样本进行采样,再基于新的采样结果重新训练出基学习器,从而使得学习过程持续到T轮完成

2.2 AdaBoost

在这里插入图片描述
权值更新等详细步骤公式详见西瓜书p174

AdaBoost的一种解释是该算法实际是前向分步算法的一个实现。在这个算法里,模型是加法模型,损失函数是指数函数,算法是前向分步算法

缺点:只适用于二分类

2.3 GBDT

提升树是以分类树或回归树为基分类器的提升方法

GBDT是梯度提升决策树(Gradient Boosting Decision Tree)的简称,GBDT分类和回归时的基学习器都是CART回归树,特点是拟合残差

GBDT VS Adaboost
同: 前向分布算法
异:

  • Adaboost算法每次拟合基学习器时,输入的样本数据是不一样的(每一轮迭代时的样本权重不一致),因为Adaboost旨在重点关注上一轮分类错误的样本
  • GBDT算法在每一步迭代时输出的值不一样,本轮要拟合的输出值是之前的加法模型的预测值和真实值的差值(模型的残差,也称为损失)。

2.4 XGBoost

XGBoost VS GBDT
同:

  • (1) 拟合残差
  • (2) 像Adaboost和GBDT中一样,对每一个模型乘以一个系数λ(0<λ≤1),用来降低每个模型对结果的贡献

异:

  • (1) 决策树结点特征选择的时候XGBoost中直接用泰勒展开式将损失函数展开成二项式函数(前提是损失函数一阶、二阶都连续可导,而且在这里计算一阶导和二阶导时可以并行计算),可以加快优化速度
  • (2) 将树模型的复杂度加入到正则项中,来避免过拟合
  • (3) GBDT只支持CART作为基分类器,XGBoost另外还支持线性分类器,在使用线性分类器的时候可以使用L1,L2正则化
  • (4) 引进了特征子采样,像RandomForest那样,这种方法既能降低过拟合,还能减少计算
  • (5) XGBoost支持并行处理,XGBoost的并行不是在模型上的并行,而是在特征上的并行,将特征列排序后以block的形式存储在内存中,在后面的迭代中重复使用这个结构,在进行特征选择时,计算每个特征的增益,那么各个特征的增益计算就可以开多线程进行

2.5 小结

  • Boosting方法实际上是采用加法模型前向分布算法
  • Boosting主要关注降低偏差

3. Bagging

3.1 自助采样法(Bootstrap)

欲得到泛化性能很强的集成,个体学习器之间应该尽可能独立,若将数据集划分为完全不同的子集,则每个基学习器只用到一小部分训练数据,不足以有效学习,Bagging采用自助采样法解决这一问题

自助采样法(Bootstrap): 即有放回的抽样,m个样本抽m次,最后得到T个含m个样本的采样集

优点:
1) 自助采样法始终未被采集的约36.8%的数据可用于验证泛化性能,即包外估计
2) 增加基学习器的多样性

包外估计应用: 决策树辅助剪枝;估计决策树中各结点的后验概率以辅助对零训练样本的处理;神经网络辅助EarlyStopping

3.2 Bagging工作机制

Bagging工作机制:
1) 自助采样得到T个含m个样本的采样集
2) 基于每个采样集训练出一个基学习器
3) 将各个基学习器结果综合(Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法;若两个基学习器结果相同,采取的办法是二选一,或者考察基学习器投票的置信度)

3.3 RandomForest

RandomForest是Bagging的扩展变体,在Bagging的基础上引进了属性干扰这一策略,主要是用来提高基学习器之间的多样性

RandomForest算法特点
传统的决策树是在整个属性集上选择最优的属性来划分样本集合,而RandomForest先在属性集上随机选取k个属性组成一个子属性集 ,然后在这个子属性集上选择最优的属性来划分样本集合 ,这里的参数k控制了随机性的引入程度,一般情况下推荐k=log2d,d为属性集的大小

缺点: 当分类器数量较少时,RF表现不好;分类器数量增加时,RF泛化性能优于Bagging

3.4 小结

  • Bagging如何增加基学习器多样性:样本扰动

  • RandomForest如何增加基学习器多样性:样本扰动+属性扰动

  • Bagging能不经修改的用于多分类、回归等任务

  • Bagging主要关注降低方差,因此在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更明显

4. 结合策略

起因: ①单学习器误选导致泛化性能不佳;②防止陷入局部最优;③由于假设空间的误判导致结果不佳

平均法(简单平均、加权平均)

  • 个体学习器性能差异较大时宜用加权平均,性能相近用简单平均

投票法(绝对多数投票、相对多数投票、加权投票)

  • 若基学习器的类型不同,其类概率值不能直接进行比较,需转化为类标记输出(1 or 0)

学习法

  • 代表算法: stacking

多样性增强: 数据样本扰动; 输入属性扰动; 输出表示扰动;④算法参数扰动

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值