机器学习 -- 集成学习简述

一、概述

1. 什么是集成学习?

2. 例子

3. 聚类的两大算法

二、Boosting(提升方法)

 1. 概述

2. Boosting的两个核心问题

三、AdaBoost

1. 概述

2. AdaBoost两个问题如何解决

3. 算法思想

         4. 算法流程

5. 算法过程图示

四、Bagging(装袋法)

1. 概述

2. 自助采样方法(有放回)

五、随机森林

1. 概述   

2. 算法思想

3. 随机森林的优缺点:

4. Bagging VS 随机森林

五、集成的合成策略

1. 学习器的组合可以从三个方面带来好处

2. 结合策略


一、概述

1. 什么是集成学习?

   集成学习(ensemble learning)是用多种学习方法的组合来获取比原方法更优的结果。

   使用于组合的算法是弱学习算法,即分类正确率仅比随机猜测略高的学习算法,但是组合之后的效果仍可能高于强学习算法,即集成之后的算法准确率和效率都很高。

  “三个臭皮匠顶个诸葛亮”

机器学习 -- 集成学习简述_第1张图片

2. 例子

  考虑一个简单的例子,在二分类问题中,假定3个分类器在三个样本中的表现如下图所示,其中√ 表示分类正确,X 号表示分类错误,集成的结果通过投票产生。

机器学习 -- 集成学习简述_第2张图片

集成个体应:好而不同,即个体学习器要有一定的“准确性”,即学习器不能太坏,并且要有“多样性”,即学习器间具有差异

3. 聚类的两大算法

(1)个体学习器存在强依赖性、必须串行生成的序列化方法,典型代表是Boosting

(2)个体学习器之间不存在强依赖性、可同时生成的并行化方法,典型代表是Bagging和随机森林(Random Forest)

二、Boosting(提升方法)

 1. 概述

 主要思想是将弱分类器组装成一个强分类器。

   在分类问题中,主要思想是将弱分类器组装成一个强分类器。具体地,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。

    提升方法就是从弱学习算法出发,反复学习,得到一系列弱分类器(又称基分类器),然后组合这些弱分类器,构成一个强分类器。

   大多数的提升方法都是改变训练数据的概率分布(训练数据的权值分布),针对不同的训练数据分布调用弱学习算法学习一系列弱分类器。

机器学习 -- 集成学习简述_第3张图片

    最著名的提升方法:AdaBoost

2. Boosting的两个核心问题

如何改变权重?如何将分类器融合成强分类器?

(1)如何在每一轮如何改变训练数据的权值或概率分布?

  通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分类器对误分的数据有较好的效果。

(2)通过什么方式来组合弱分类器?

通过加法模型将弱分类器进行线性组合

三、AdaBoost

AdaBoost是Boosting最著名的提升方法

1. 概述

机器学习 -- 集成学习简述_第4张图片

   刚开始训练时对每一个训练例赋相等的权重,然后用该算法对训练集训练t轮,每次训练后,对训练失败的训练例赋以较大的权重,也就是让学习算法在每次学习以后更注意学错的样本,从而得到多个预测函数。通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最终模型。

   主要思想:需不断修改误分样本的权重

2. AdaBoost两个问题如何解决

(1)每一轮如何改变训练数据的权值或概率分布?

AdaBoost:提高那些被前一轮弱分类器错误分类样本的权值,降低那些被正确分类样本的权值

(2)如何将弱分类器组合成一个强分类器?

AdaBoost:加权多数表决,加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用,减小分类误差率大的弱分类器的权值,使其在表决中起较小的作用。

3. 算法思想

机器学习 -- 集成学习简述_第5张图片

机器学习 -- 集成学习简述_第6张图片

4. 算法流程

机器学习 -- 集成学习简述_第7张图片

机器学习 -- 集成学习简述_第8张图片

机器学习 -- 集成学习简述_第9张图片

5. 算法过程图示

机器学习 -- 集成学习简述_第10张图片机器学习 -- 集成学习简述_第11张图片

机器学习 -- 集成学习简述_第12张图片          机器学习 -- 集成学习简述_第13张图片

机器学习 -- 集成学习简述_第14张图片机器学习 -- 集成学习简述_第15张图片

四、Bagging(装袋法)

1. 概述

    装袋法(Bagging)又称为Bootstrap Aggregating,其原理是通过组合多个训练集的分类结果来提升分类效果

    装袋法由于多次采样,每个样本被选中的概率相同,因此噪声数据的影响下降,所以装袋法太容易受到过拟合的影响

    Bagging的算法原理和 boosting不同在于训练数据的选取,它的弱学习器之间没有依赖关系,可以并行生成,而Bagging使用的是所有的训练数据。

机器学习 -- 集成学习简述_第16张图片

    bagging的个体弱学习器的训练集是通过随机采样得到的。通过T次的随机采样,我们就可以得到T个采样集,对于这T个采样集,我们可以分别独立的训练出T个弱学习器,再对这T个弱学习器通过集合策略来得到最终的强学习器。

   采样方法:自助采样

2. 自助采样方法(有放回)

    自助采样法(Bootstrap sampling),即对于m个样本的原始训练集,我们每次先随机采集一个样本放入采样集,接着把该样本放回,也就是说下次采样时该样本仍有可能被采集到,这样采集m次,最终可以得到m个样本的采样集,由于是随机采样,这样每次的采样集是和原始训练集不同的,和其他采样集也是不同的,这样得到多个不同的弱学习器。

机器学习 -- 集成学习简述_第17张图片

五、随机森林

1. 概述   

随机森林(Random Forest,简称RF)是bagging的一个扩展变种,他的随机体现在:采样随机性属性选择的随机性

机器学习 -- 集成学习简述_第18张图片

    随机森林使用了CART决策树作为弱学习器;

2. 算法思想

     在使用决策树的基础上,RF对决策树的建立做了改进,对于普通的决策树,我们会在节点上所有的n个样本特征中选择一个最优的特征来做决策树的左右子树划分,但是RF通过随机选择节点上的一部分样本特征,这个数字小于n,假设为nsub, 然后在这些随机选择的nsub个样本特征中,选择一个最优的特征来做决策树的左右子树划分。这样进一步增强了模型的泛化能力。(即:)

如果nsub=n,则此时RF的CART决策树和普通的CART决策树没有区别。nsub越小,则模型越健壮,当然此时对于训练集的拟合程度会变差。也就是说nsub越小,模型的方差会减小,但是偏倚会增大。

在实际案例中,一般会通过交叉验证调参获取一个合适的nsub的值。

机器学习 -- 集成学习简述_第19张图片

3. 随机森林的优缺点:

优点:

1) 训练可以高度并行化,对于大数据时代的大样本训练速度有优势。

2) 由于可以随机选择决策树节点划分特征,这样在样本特征维度很高的时候,仍然能高效的训练模型。

3) 在训练后,可以给出各个特征对于输出的重要性

4) 由于采用了随机采样,训练出的模型的方差小,泛化能力强。

5) 相对于Boosting系列的Adaboost和GBDT, RF实现比较简单。

6) 对部分特征缺失不敏感。

缺点:

1)在某些噪音比较大的样本集上,RF模型容易陷入过拟合。

2) 取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果。

4. Bagging VS 随机森林

   随着个体学习器数目的增加,随机森林通常胡收敛到更低的泛化误差;随机森林的训练效率常优于Bagging。

机器学习 -- 集成学习简述_第20张图片

(一开始,随机森林的效果较差,弱学习器性能不够好,随着弱学习器数量增加,其性能更好。整体来说,随机森林比Bagging效果更好)

五、集成的合成策略

1. 学习器的组合可以从三个方面带来好处

机器学习 -- 集成学习简述_第21张图片

(b)计算的原因(学习算法往往会出现局部最小,泛化性较差,通过使用多个学习器的组合,可以达到更好的效果)

(c)表示的原因(真实假设可能不在假设空间,单一学习器会出现预测错误,但是融合之后假设空间会扩大,效果可能会更好)

2. 结合策略

(1)平均法(2)加权平均法

(3)投票法:绝对多数投票法,相对多数投票法,加权投票法

(4)Stacking (5)贝叶斯模型平均

你可能感兴趣的:(机器学习,机器学习,算法)