集成学习
Ensemble Learning
1.概念
集成学习是指将若干弱分类器组合之后产生一个强分类器。弱分类器(weak learner)指那些分类准确率只稍好于随机猜测的分类器(error rate < 50%)。
集成算法成功的关键在于能保证弱分类器的多样性(diversity)。集成不稳定的学习算法能得到更明显的性能提升。
Ensemble方法也比单一模型更容易过拟合。但是,实际中有一些方法(尤其是Bagging)也倾向于避免过拟合。
经验上来说,如果待组合的各个模型之间差异性(diversity )比较显著,那么Ensemble之后通常会有一个较好的结果,因此也有很多Ensemble的方法致力于提高待组合模型间的差异性。尽管不直观,但是越随机的算法(比如随机决策树)比有意设计的算法(比如熵减少决策树)更容易产生强分类器。然而,实际发现使用多个强学习算法比那些为了促进多样性而做的模型更加有效。
2.集成目的
1模型选择(Model Selection)
假设各弱分类器间具有一定差异性(如不同的算法,或相同算法不同参数配置),这会导致生成的分类决策边界不同,也就是说它们在决策时会犯不同的错误。将它们结合后能得到更合理的边界,减少整体错误,实现更好的分类效 。
2.数据集过小或过大
数据集较大时,可以分为不同的子集,分别进行训练,然后再合成分类器。
数据集过小时,可使用自举技术,从原样本集有放回的抽取m个子集,训练m个分类器,进行集成。
3.分治(Divide and Conquer)
若决策边界过于复杂,则线性模型不能很好地描述真实情况。因此先训练多个线性分类器,再将它们集成。
4.数据融合(Data Fusion)
当有多个不同数据源,且每个数据源的特征集抽取方法都不同时(异构的特征集),需要分别训练分类器然后再集成。
3.通过这种集成学习提高分类器的整体泛化能力是有条件的
1)分类器之间应该具有差异性,想想看啊,如果使用的是同一个分类器,那么集成起来的分类结果是不会有变化的。
2)分类器的精度,每个个体分类器的分类精度必须大于0.5。如下面的图,可以看到如果p<0.5,那么随着集成规模的增加,分类精度会下降,但是如果大于5的话,那么最终分类精准度是可以趋于1的。
4.集成类型
1.Bayes Optimal Classifier(贝叶斯最优分类器)
2.Bootstrap aggregating通常又简称为Bagging(装袋法)
3.Boosting(提升法)
4.Bayesian model averaging (BMA, 贝叶斯模型平均)
5.Bayesian model combination(BMC, 贝叶斯模型组合)
6.Bucket of models
7.Stacking
5.模型组合
主要有如下三种情况:
1)Abstract-level:各个模型只输出一个目标类别,如猫、狗和人的图像识别中,仅输出人;
2)Rank-level:各个模型是输出目标类别的一个排序,如猫、狗和人的图像识别中,输出人-狗-猫;
3)measurement-level:各个模型输出的是目标类别的概率估计或一些相关的信念值,如猫、狗和人的图像识别中,输出0.7人-0.2狗-0.1猫;