集成方法,或者叫做组合方法(Ensemble methods)介绍(一)

来源:互联网 发布:表单系统源码 编辑:程序博客网 时间:2024/06/05 16:51

集成方法的思想就是将若干个分类器组合起来(或者把一种算法的不同参数组合到一起),以改进各单个分类器的效果。集成方法大致分两类:

1. Averaging methods(平均方法):

就是利用训练数据的全集或者一部分数据训练出几个算法或者一个算法的几个参数,最终的算法是所有这些算法的算术平均。比如Bagging Methods(装袋算法),Forest of Randomized Trees(随机森林)等。实际上这个比较简单,主要的工作在于训练数据的选择,比如是不是随机抽样,是不是有放回,选取多少的数据集,选取多少数训练数据。后续的训练就是对各个算法的分别训练,然后进行综合平均。这种方法的基础算法一般会选择很强很复杂的算法,然后对其进行平均,因为单一的强算法很容易就导致过拟合(overfit现象),而经过aggregate之后就消除了这种问题。

2. boosting methods(提升算法):

就是利用一个基础算法进行预测,然后在后续的其他算法中利用前面算法的结果,重点处理错误数据,从而不断的减少错误率。其动机是使用几种简单的弱算法来达到很强大的组合算法。所谓提升就是把“弱学习算法”提升(boost)为“强学习算法,是一个逐步提升逐步学习的过程;某种程度上说,和neural network有些相似性。经典算法 比如AdaBoost(Adaptive Boost,自适应提升),Gradient Tree Boosting(GBDT)。这种方法一般会选择非常简单的弱算法作为基础算法,因为会逐步的提升,所以最终的几个会非常强。

scikit-learn提供了Ensemble methods的介绍和Python使用,见:

http://scikit-learn.org/stable/modules/ensemble.html


阅读全文
0 0