集成学习简介(ensemble learning)
1.集成学习概述
- 通过训练若干个个体学习器,通过一定的结合策略,最终形成一个强学习器,达到博采众长的目的。
- 集成学习有两个主要问题需要解决:(1)如何得到若干个个体学习器;(2)如何选择一种组合策略,将多个个体学习器集合成一个强学习器
2. 个体学习器
- 同质个体学习器:所有的个体学习器都是同一个种类,比如都是决策树个体学习器,或者都是神经网络个体学习器
- 异质个体学习器:所有的个体学习器不全是一个种类,比如一个分类问题,对训练集采用SVM个体学习器、逻辑归回个体学习器和朴素贝叶斯个体学习器来学习
- 同质个体学习器是否存在依赖关系?
- 强依赖关系:一系列个体学习器基本需要串形生成,代表算法是boosting系列算法
- 不存在依赖关系:一系列个体学习器可以并行生成,代表算法是bagging和随机森林(random forest)
3.集成学习之boosting
- 算法思想:首先从训练集初始权重训练出一个弱学习器1,根据弱学习器的学习误差率表现来更新训练样本的权重,使得之前弱学习器学习误差率高的训练样本点的权重变高,使得这些误差率高的店在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2,如此重复进行,知道弱学习器数达到预定的数目T,最终将这T个弱学习器通过集合策略进行整合,最终得到强学习器。
- 经典算法:AdaBoost算法和提升树(boosting tree)算法
4. 集成学习之bagging
bagging的个体弱学习器的训练集是通过随机采样得到的。通过T次随机采样,我们可以得到T个采样集,对这T个采样集,我们可以分别独立训练出T个弱学习器,再对T个弱学习器通过集合策略来得到最终的强学习器。
- 随机采样:自主采样(Bootstap sampling):对于m个样本的原始训练集,我们每次先随机采集一个样本放入采样机,接着把该样本放回,这样才集m次,最终可以得到m个样本的采样集。由此得到多个弱学习器。
- 随机森林:随机森林是bagging的一个特化进阶版。随机森林的弱学习器都是决策树。进阶的随机森林在bagging的样本随机采样基础上,又加上了特征的随机选择。
5. 集成学习之组合策略
- 平均法
- 投票法
- 学习法
- stacking :不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器。也就是说,我们将悬链弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。此时,弱学习器被称为初级学习器,将用于结合的学习器称为次级学习器。对于测试集,我们首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。