1、集成学习主要采用“三个臭皮匠抵过一个诸葛亮”的思想,集成了多个较为弱小的学习器,以使得实验获得好的效果
产生历史:结合多个分类器比一个分类器的方法还要好
2、构造集成器的方法
可以采用majority voting来进行classification或者使用weighted average来进行regression
为了要得到一个好的分类器,base learners必须要尽可能的准确,尽可能的多样化。已经有很多人来研究
学习器的准确率,但是很少人能用一个准确的方式来定义diversity。定义多样化方式的衡量方法可以有很多中,
如何从训练样本中进行抽样,控制属性,控制输出,将随机性引入学习方法。不同base learners的结合
或者采用技术导致了各种集成方法。
3、代表性的方法有三种:Boosting Bagging Stacking
Boosting
首先,为所有的数据分配相等的权重,
然后,使用训练数据来测试算法ht,并且增加那些不正确分类的数据的权重。
每个学习算法的权重也在学习过程中被确定。可以用T种的学习器,每个学习器都会有一个分类结果,
如果发现分类结果不准确,那么那个训练数据例子的权重也会增加,同时,也会计算学习器t的权重。
最后再对每个学习器的权重和学习器判别结果进行乘积,得到判别结果。
Bagging
1、选择some bootstrap sample,每个学习器选择的例子可能都不同。原例子出现的概率至少为0.632,可能用其他的label
来代替原训练数据的label。
2、对选择出来的sample进行训练。
最后output的时候采用了majority voting的方法。选择使得所有分类learner的大部分都分类的结果。
Stacking:
先用所有的学习算法构造所有学习器
构建一个新的数据空集,每次都把学习器判别的结果加入数据集,那么数据集合就会变得比以前还要大。
然后对新的数据集进行分类,学习。
选择所有的学习器并不一定比全部都选择的好,many could be more better than all.
集成学习不仅可以用来做分类和回归,还可以用来聚类,或者其他的机器学习任务。
为什么选择一个学习器不一定比所有的学习器都要好呢?
1、训练数据可能不能提供足够的信息来选择准确的学习器,很多学习器的效果都是相当的。尝试着结合所有的
学习器可能是个better choice
2、每个学习器可能会达到一个次优的结果,所有的搜索结果都不是那么完美的。
3、搜索结果可能不包含最好的那个函数。
应用:文本分类、医药检测
总结:
1、目前没有比较好的多样性度量
2、集成学习器的方法还没有很好的为用户所了解。