1 集成学习
1.1 集成学习的概念
集成学习(ensemble learning)是通过结合多个学习器来完成学习任务,其思路是通过合并多个模型来提升机器学习性能,其研究的核心构造出“好而不同”的个体学习器。
一般来说集成学习可以分为三大类:
- 用于减少偏差的boosting
- 用于减少方差的bagging
- 用于提升预测结果的stacking
大部分集成模型都通过一个基础学习算法来生成一个同质的基础学习器,即同类型的学习器,也叫同质集成比如都是决策树个体学习器,或者都是神经网络个体学习器。有同质集成就有异质集成,为了集成后的结果表现最好,异质基础学习器需要尽可能准确并且差异性够大。
1.2 个体学习器的概念
个体学习器(individual learner)一般是由现有的学习算法从训练数据产生,如决策树算法、BP神经网络等。通过某种策略将其结合起来就构成了集成学习的结构基础。如果集成的结构里个体学习器的种类唯一,那么此集成是同质的(homogeneous);同质集成中的个体学习器也称为基学习器(base learner),相应的学习算法称为基学习算法(base learningalgorithm)。若集成包含不同类型的个体学习器,则集成是异质的(heterogenous);异质集成中的个体学习器由不同的学习算法生成,个体学习器称为组件学习器(component learner)。
1.3 boosting
Boosting其思路是从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续获得更多的权重,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数达到事先指定的值T,最终将这T个基学习器进行加权结合,从而将弱学习器提升为强学习器。简单来说,就是基于同一训练集和同一个算法训练出T个基学习器,每一轮训练都针对上一轮的训练结果调整样本分布。
1.4 bagging
bagging是bootstrap aggregating 的缩写,其采取装袋采样的方式来获取数据子集训练基础学习器。从原始样本集中抽取训练集,每轮从原始样本集中使用Bootstraping(如果采取某种有规律的采样,那么生成的T个采样集可能相似度极高,训练出的T个弱学习器相似度也极高,那么集成这T个弱学习器的意义就没有了。)的方法抽取n个训练样本,故而有36.9%的样本不出现在采样集内而成为袋外数据(Out Of Bag,OOT)。这些数据并未参与训练集模型的训练,从而可以用来检测模型的泛化能力。在进行T轮抽取后,得到T个训练集。每次使用一个训练集得到一个模型,T个训练集共得到T个模型。通过对所得到的T个弱学习器采取结合策略生成强学习器。
1.5 两者的区别
- 样本选择:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。