人, 既无虎狼之爪牙,亦无狮象之力量,却能擒狼缚虎,驯狮猎象,无他,唯智慧耳。
全部博文(167)
分类: 大数据
2015-04-25 17:31:44
现在为止我们也了解了不少机器学习相关的算法,实际上,每个算法都有自己的假设条件,不同的归纳偏倚会有不同的数据符合度。一般来说,我们可以针对同一个数据集使用多个机器学习算法,然后比较算法的契合度,基本就是准确率,然后选择最合适的一个。但是也存在一些情况,所有单个算法都不能达到我们预期的准确率,此时我们就要考虑组合学习了。
组合学习,顾名思义,就是对于数据集同时使用多个机器学习算法,从而获得算法优劣互补的一种复合算法。近来随着计算和存储变得更为廉价,组合多个学习器的系统也随之流行。对于组合学习来说,有两个基本的问题:
下面我们围绕这两个基本的问题对组合学习策略做一个简单的介绍。
利用我们已知的算法,我们可以产生有差异的不同的学习器,主要有以下几种方法:
需要注意的是,组合学习注重的是组合后的算法的准确率,而不是单个基学习器自身的准确率。
在获得差异化的基学习器后,有多种方案来组合这些学习器。主要有两种:
组合多个学习器最常用的方法就是投票,原理就是多个学习器并行处理相同的输入,然后对每个输出“求和”,这里的“求和”只是代表一种运算,并不限于加法。基本的框架如图:(W1、W2、W3代表学习器的权重)
常用的分类器“加法”有以下几种:
装袋(bagging)也是一种投票方法,其中基学习器通过在稍有差异的训练集上训练而有所不同。这里主要采取“有放回”的自助法从同一个训练集中随机抽取L个训练集,然后使用不稳定的学习过程训练L个基学习器,并在检验时取平均值。
层叠泛化(stacked generalization)其实也是投票的一种扩展,因为投票系统的组合方式大多是线性的,而层叠泛化则不一定如此,组合方式可以是一个单独的复杂的学习器。比如:
这里的组合系统F(|φ* 可以是线性的,也可是非线性的,也可以是一个单独的学习器,比如是一个多层感知器,参数φ是连接权重。
在层叠泛化中,我们希望基学习器尽可能不同,使得它们可以互相补充。因此最好的基学习器都基于不同的学习算法。层叠泛化相较于传统的投票模型,训练过的规则更灵活并且具有更小的偏倚,但是却增加了额外的参数,有引入方差的风险。
Refer: 《机器学习导论》,Ethen Alpaydin(土耳其),机械工业出版社