集成学习主要包括Boosting(提升)和Bagging(袋装)两大类,本文主要分享第二类Bagging类集成学习,会讲解Bagging的原理,以及在Bagging基础上改进之后的随机森林(Random Forest,简称RF)算法。码字不易,喜欢请点赞!!!
一、集成学习
1.1 集成学习简介
集成学习(Ensemble Learning),通过组合多个基学习器来完成任务。可用于分类、回归、异常点检测、特征选取集成等。是现在非常火爆的机器学习方法。
1.2 集成学习种类
集成学习就是将一些基学习器组合成一个强学习器。对于这些基学习器来说,可以选择同一种类的,比如随机森林都采用决策树作为基学习器;也可以选择不全相同的类别的。但是一般来说都采用同质的基学习器,目前来说,应用的最广泛的基学习器是决策树和神经网络。
同质学习器按照基学习器之间是否存在依赖关系可以分为两类:
- 基学习器之间存在依赖关系:代表算法为Boosting算法
- 基学习器之间无依赖关系(可并行生成):代表算法为Bagging算法
1.2.1 Boosting原理
Boosting原理如下图,首先在训练集中用初始权重训练Model1,根据Model1中的学习误差率来更新训练样本的权重,使得Model1中的学习误差率高的样本点的权重变高,那么在Model2中这些样本将会更受重视;如此重复迭代,直接达到达到T个基学习器。最终将这T个基学习器通过集合策略进行整合,得到最终的强学习器。
Boosting系列算法里最著名算法主要有AdaBoost算法和提升树(boosting tree)系列算法。之后我们会进行讲解介绍。
1.2.2 Bagging原理
上面说到Boosting算法的基学习器之间是具有关联的状态的,而Bagging在这一点上则不同,Bagging算法的基学习器之间是没有关联的。如下图:
先从数据集DataSet中通过自助采样的方法,采集样本,然后每个样本跑一个基学习器,最后通过组合这些基学习器来完成任务。
二、Bagging
2.1 采样方法
上面说到Bagging算法的基学习器之间是没有关联的。
对于具有M个样本,和T个基学习器的Bagging算法。
首先针对每个基学习器 t i t_i ti,我们对样本M采用自助采样法(Bootstrap Sampling)进行采样(就是我们知道的有放回抽样),抽取M个样本。
对于某个样本,在每次抽样,被抽到的概率为 1 / M 1/M 1/M,不被抽到的概率为 1 − 1 / M 1-1/M 1−1/M,则M次抽样不被抽到的概率为 ( 1 − 1 M ) M (1-\frac{1}{M})^M (1−M