7、集成学习(Ensemble Learniing)概述

集成学习(Ensemble Learniing)是一种新的学习策略,对于一个复杂的分类问题,通过训练多个分类器,利用这些分类器来解决同一个问题

集成学习中的典型方法可以分为Bagging算法Boosting算法

1、Bagging算法

Bagging算法通过对训练样本有放回地抽取,由此产生多个训练数据的子集,并在每一个训练集的子集上训练一个分类器,最终分类结果是由多个分类器的分类结果投票而产生的。

Bagging算法训练出来的模型在预测新样本分类的时候,会使用多数投票或者求均值的方式来统计最终的分类结果。

Bagging算法的弱学习器可以是基本的算法模型,比如:Linear、Ridge、Lasso、Logistic、Softmax、ID3、C4.5、CART、SVM、KNN等。

Bagging常用模型:随机森林(RF)。

其示意图如下:

   

2、Boosting算法

对于 Bagging 思想集成的随机森林,是可以并行训练的,正是因为每个弱分类器之间不相互影响;而 Boosting 是通过串行训练而获得的,每个分类器要根据以前训练出的分类器的性能来进行训练。

Boosting算法算法通过顺序地给训练集中的数据项重新加权创造不同的基础学习器。

Boosting 常用模型:AdaBoost、Gradient Boosting(GBT/GBDT/GBRT)、XGBoost。

其示意图如下:

Boosting 分类的结果是基于所有弱分类器的加权求和结果的,所以 Boosting 中的每个弱分类器的权重不一样,每个权重代表的是其对应的弱分类器在上一轮迭代中的成功度;而 Bagging 中的弱分类器的权重是一样的。

3、结合策略

1)平均法
对数值型输出,最常见的结合策略是使用平均法。

简单平均法(simple averaging) 

$H(x) = \frac{1}{T} \sum_{i=1}^{T}h_i(x)$

加权平均法(weighted averaging) 

$H(x) = \sum_{i=1}^{T}w_ih_i(x)$

其中,$w_i$是个体学习器$h_i$的权重,通常要求$w_i \geqslant 0, \sum_{i=1}^{T}w_i = 1$

2)投票法
绝对多数投票法(majority voting)

$H(x) = \begin{cases}
c_j, \quad if \sum_{i=1}^{T}h_i^j(x) > 0.5\sum_{k=1}^{T}\sum_{i=1}^{T}h_i^k(x); \\
reject, \quad otherwise.
\end{cases}$

即:若某标记的票过半数,则预测为该标记。否则拒绝预测。

相对多数投票法(plurality voting)

$H(x) = c_{arg \max\limits_{j}}\sum_{i=1}^{T}h_i^j(x)$

即:预测为得票最多的标记,若同时多个标记获得最高票,则从中随机选取一个。

加权投票法(weighted voting) 

$H(x) = c_{arg \max\limits_{j}}\sum_{i=1}^{T}w_ih_i^j(x)$

3)学习法
当训练数据集很多时,使用“学习法”,典型代表“Stacking”。通过另一个学习器来进行结合,这里把个体学习器称为初级学习器,用于结合的学习器称为次级学习器。

Stacking先从初始数据集中训练出初级学习器,然后“生成”一个新的数据集用于训练次级学习器。在这个新的数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍被当作样例标记。

参考文献 

[1] 周志华. 机器学习[M]. 北京:清华大学出版社,2016.

[2] 李航. 统计学习方法[M]. 北京:清华大学出版社,2012.

[3] Peter. 机器学习实战[M]. 北京:人民邮电出版社,2013.

[4] 赵志勇. Python机器学习算法[M]. 北京:电子工业出版社,2017.

posted @ 2019-08-20 11:02  Andy_George  阅读(262)  评论(0编辑  收藏  举报