我爱编程

集成学习之Bagging

2018-05-05  本文已影响36人  海街diary

集成学习之Bagging

Bagging通过并行化的生成若干个基学习器,然后通过投票(分类)或平均(回归)来对这些基学习器进行集成。


bagging集成(-1,1分类)

在基学习器独立的条件下,理论上,随着基学习的数目增大,集成后的学习器预测错误的概率呈指数趋势下降。详细的证明见这里

bagging集成误差随基学习器数量指数衰减

为了充分利用这个特性,Bagging采取的一个重要的手段就是bootstrap采样,即我们常说的有放回抽样。对于m个样本,进行m次有放回的抽样得到m个样本的新集合,原集合中的样本约有36.8%的概率(比例)不出现在新集合中。每个基学习器利用新集合中的样本进行训练(注:对每个基学习器对会进行一次有放回抽样产生新的样本集合)。


样本1次也没有抽到概率

这么做的好处有:

总结以上,Bagging具有的特点:

因此,对于算法研究者而言,要充分利用Bagging思想的优势,就需要尽可能的设计多样化的基学习器。这也就不难理解,在有放回抽样的条件下, unstable learner由于对样本敏感,常常比stable learner效果要好。比如,bagging中常常使用unpruned tree而不是prunded tree.


Unstable Learner常比Stable Learner效果好

最后,我自己实现的一个Bagging,代码见这里
参考书目:

上一篇下一篇

猜你喜欢

热点阅读