【机器学习】集成学习 - Ensemble Learning


一、为什么集成学习 (Ensemble Learning) ?

传统机器学习算法 (例如:决策树,人工神经网络,支持向量机,朴素贝叶斯等) 的目标都是寻找一个最优分类器尽可能的将训练数据分开。集成学习 (Ensemble Learning) 算法的基本思想就是 将多个分类器组合,从而实现一个预测效果更好的集成分类器。集成算法可以说从一方面验证了中国的一句老话:三个臭皮匠,赛过诸葛亮。

Thomas G. Dietterich 指出了集成算法在统计,计算和表示上的有效原因:

  1. 统计上的原因
    一个学习算法可以理解为在一个假设空间 H 中选找到一个最好的假设。但是,当训练样本的数据量小到不够用来精确地学习到目标假设时,学习算法可以找到很多满足训练样本的分类器。所以,学习算法选择任何一个分类器都会面临一定错误分类的风险,因此将多个假设集成起来可以降低选择错误分类器的风险。

  2. 计算上的原因
    很多学习算法在进行最优化搜索时很有可能陷入局部最优的错误中,因此对于学习算法而言很难得到一个全局最优的假设。事实上人工神经网络和决策树已经被证实为是一 个NP 问题。集成算法可以从多个起始点进行局部搜索,从而分散陷入局部最优的风险。

  3. 表示上的原因
    在多数应用场景中,假设空间 H 中的任意一个假设都无法表示 (或近似表示) 真正的分类函数 f 。因此,对于不同的假设条件,通过加权的形式可以扩大假设空间,从而学习算法可以在一个无法表示或近似表示真正分类函数 f 的假设空间中找到一个逼近函数 f 的近似值。


二、集成学习的分类

集成算法大致可以分为:Bagging,Boosting 和 Stacking 等类型。

接下来一一介绍。


三、Bagging

1. Bagging 原理

Bagging (Boostrap Aggregating) 是由 Breiman 于 1996 年提出,基本思想如下:

  1. 每次采用有放回的抽样从训练集中取出 n 个训练样本组成新的训练集。
  2. 利用新的训练集,训练得到 M 个子模型。
  3. 对于分类问题,采用投票的方法,得票最多子模型的分类类别为最终的类别;对于回归问题,采用简单的平均方法得到预测值。

在这里插入图片描述

一个分析:

在这里插入图片描述

2. Bagging 实例 - 随机森林 (Random Forests)

随机森林 (Random Forests) 是一种利用决策树作为基学习器的 Bagging 集成学习算法。随机森林模型的构建过程如下:

  1. 数据采样

作为一种 Bagging 集成算法,随机森林同样采用有放回的采样,对于总体训练集 T ,抽样一个子集 Tsub 作为训练样本集。除此之外,假设训练集的特征个数为 d ,每次仅选择 k(k<d) 个构建决策树。因此,随机森林除了能够做到样本扰动外,还添加了特征扰动,对于特征的选择个数,推荐值为 k = log2d。

  1. 树的构建

每次根据采样得到的数据和特征构建一棵决策树。在构建决策树的过程中,会让决策树生长完全而不进行剪枝。构建出的若干棵决策树则组成了最终的随机森林。

随机森林在众多分类算法中表现十分出众,其主要的优点包括:

  • 由于随机森林引入了样本扰动和特征扰动,从而很大程度上提高了模型的泛化能力,尽可能地避免了过拟合现象的出现。
  • 随机森林可以处理高维数据,无需进行特征选择,在训练过程中可以得出不同特征对模型的重要性程度。
  • 随机森林的每个基分类器采用决策树,方法简单且容易实现。同时每个基分类器之间没有相互依赖关系,整个算法易并行化。

四、Boosting

1. Boosting 原理

Boosting 是一种提升算法,可以将弱的学习算法提升 (boost) 为强的学习算法。基本思路如下:

  1. 利用初始训练样本集训练得到一个基学习器。
  2. 提高被基学习器误分的样本的权重,使得那些被错误分类的样本在下一轮训练中可以得到更大的关注,利用调整后的样本训练得到下一个基学习器。
  3. 重复上述步骤,直至得到 M 个学习器。
  4. 对于分类问题,采用有权重的投票方式;对于回归问题,采用加权平均得到预测值。

2. Boosting 实例

1)Adaboost

2)GBDT (GBM, GBRT, MART)


五、Stacking


参考链接

  1. 作者:范叶亮 集成学习算法 (Ensemble Learning)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值