集成学习概述(二)随机子空间 Random subspace method and stacking

版权声明:如果对您有所启发,欢迎留言告知。若需转载请先联系作者获得许可,转载后请注明出处。 https://blog.csdn.net/yq_forever/article/details/54948564

六、随机子空间  Random subspace method

Random subspace method(RSM)又叫attribute bagging 或者 feature bagging,是集成学习的一种。随机子空间通过使用随机的部分特征而不是所有的特征来训练每个分类器,来降低每个分类器之间的相关性。

类似bagging, bagging是随机使用部分训练数据,而Random subspace method是随机使用部分特征,因此Random subspace method常用语特征远远大于训练样本数的情况,比如核磁共振、基因组序列、CSI(信道状态信息)。

实际上,随机森林就是一个使用了RSM和bagging的decision tree.同样的,RSM也可以用在SVM等其他分类器上。

在训练出每个分类器之后进行预测,得到每个分类器对应的结果。根据多数投票或结合先验概率的方法获得最终结果。

 

七、stacking

Stacking(有时候也称之为stacked generalization)是指训练一个模型用于组合(combine)其他各个模型。即首先先训练多个不同的模型,然后再以之前训练的各个模型的输出为输入来训练一个模型,以得到一个最终的输出。如果可以选用任意一个组合算法,那么理论上,Stacking可以表示各种Ensemble方法。然而,实际中,我们通常使用单层logistic回归作为组合模型。

 

先在整个训练数据集上通过bootstrapped抽样得到各个训练集合,得到一系列分类模型,称之为Tier 1分类器, 然后将输出用于训练Tier 2 分类器(meta-classifier, Wolpert 1992)。潜在的一个思想是希望训练数据都得被正确的学习到了。比如某个分类器错误的学习到了特征空间里某个特定区域,因此错误分类就会来自这个区域,但是Tier 2分类器可能根据其他的分类器学习到正确的分类。交叉验证也通常用于训练Tier 1分类器:把这个训练集合分成T个块,Tier 1中的每个分类器根据各自余下的T-1块进行训练,并在T块(该块数据并未用于训练)上测试。之后将这些分类器的输出作为输入,在整个训练集合上训练Tier 2分类器。(这里未提及测试集,测试集是指不在任何训练过程中出现的数据)。


七、总结与回顾


回顾集成学习有效的第二个前提,怎样形成不同的基本分类器呢?主要从以下5个方面得到。

1.基本分类器本身的种类,即其构成算法不同。如SVM, decision tree等。

2.对数据进行处理不同,比如说boosting, bagging, stacking, cross-validation, hold-outtest等。

3.对输入特征进行处理和选择,如RSM

4.对输出结果进行处理,比如说有的学者提出的纠错码

5.引入随机扰动。在每个基本分类器的学习过程之中引入随机扰动,使得学习出来的每个基本分类器都不同,这是用于进行人工神经网络集成学习的最常见方法。


下面是一些实验性的结论:

Boosting方法的集成分类器效果明显优于bagging,但是在某些数据集boosting算法的效果还不如单个分类器的。

使用随机化的人工神经网络初始权值来进行集成的方法往往能够取得和bagging同样好的效果。

Boosting算法一定程度上依赖而数据集,而bagging对数据集的依赖没有那么明显。

Boosting算法不仅能够减少偏差还能减少方差,但bagging算法只能减少方差,对偏差的减少作用不大。

 

 

部分转载自:

http://www.datakit.cn/blog/2014/11/02/Ensemble_learning.html

http://blog.csdn.net/wangle1e/article/details/51955856?locationNum=1&fps=1

http://blog.csdn.net/u011345885/article/details/52797077?locationNum=7&fps=1

有删改。

 

参考:

清华大学廖英毅, "集成学习综述."  soft.cs.tsinghua.edu.cn/~keltin/docs/ensemble.pdf.

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页