首页 > 代码库 > 集成学习 概念介绍
集成学习 概念介绍
集成学习(Esemble learning)
在机器学习领域,如何根据观察数据学习一个精确的估计数据是一个主要问题。
通常,我们通过训练数据应用某个算法得出一个训练模型,然后使用评估数据来评估这个模型的预测正确率,最后如果我们可以接受这个正确率就使用该模型进行预测数据。通常我们将训练数据进行交叉验证,比如说10则交叉验证,我们将训练数据平均分为10份,循环用其中的9份数据来训练模型,用另一份数据验证准确率,最后将结果准确率平均就是最后的分类准确率。当然还有其他方法。
但是寻找一个可以有很高准确率的算法是很难的。
弱学习:就是学习算法在辨别一组概念仅比猜测好一点。
强学习:可以再一个多项式级的时间内辨别一组概念,而且准确率很高。
目前,已经证明,强学习和弱学习是相互等价的,意思就是说在我们学习某一组概念的时候可以只使用一个比一个随机猜测好一点的弱学习算法,然后使用某种方法将它提升为强学习。
即使用多个弱学习器集成为一个强学习。集成学习的理论基础就是这个。
集成学习可以显著的提高学习系统的泛化能力。
步骤:
1)通过不同方法训练出多个学习器(比如使用同质的分类器不同的训练数据和参数设置,使用不一样的分类器。。。。)
2)集成多个分类器的结果。
在集成学习系统中,分量学习器的输出形式对采用何种集成方法有很大的影响,根据输出形式我们可以这么分:
(1)基于抽象级信息的集成
所谓抽象指的是分量分类器直接输出单纯的识别结果,没有其他附加信息,是最普遍的一种方法,比如常用的投票,加权投票等。
(2)基于排序级(目前我还不知是啥意思)
(3)基于度量级信息的集成
指的是分量分类器输出为度量值,如概率,信度等。比如Max、Min、Sum。Product、Median等等(weka里面有)
问题:但其实我们可以看出这些集成方法其实有个问题,就是他们并没有考虑到分量分类器在不同的数据有不同的可信度,而是仅仅使用某个分类器的权重用于结果的集成,这边集成的权重视一样的。
可不可以这样:比如我们有好多个分类器,我们可以动态改变分类器的集成权重,通过分类器对数据的可信度来动态改变权重。
选择性集成:
对于集成学习,有个问题就是,由于随着分量分类器的不断增加,导致需要更大的内存,运行速度下降。于是提出一种方法就是选择性集成。
选择性集成:通过选择部分个体学习器来构建集成要优于使用所有的个体学习器构建的集成,也就意味着利用中小规模的选择性集成就可以获得很好的性能。
“Many could be better than all”