Ensemble Learning集成学习

2019-04-04  本文已影响0人  ColleenKuang

目录

  1. Introduction & Motivation
  2. Bagging(2.1 Random Forest)
  3. Boosting
  4. Summary

1. Introduction & Motivation

俗话说,三个臭皮匠胜过一个诸葛亮。集成学习正是基于这种直观思想,而形成的提高机器学习准确率的方法。

传统的机器学习算法中,在假设空间(hypothesis space/hypotesis set)里,通过一次次的迭代实验过程中,搜索与未知函数f最近似函数h

而,反观集成学习

建造一组由多个hypothesis{h_1, h_2, ..., h_k }组合而成的整体hypothesis,然后采用一些模式让这些多个假说进行“投票”{w_1, w_2, ..., w_k },以推测新数据的标签H(X) = w_1h_1(X)+ w_2h_2(X), ..., w_kh_k(X)
一般,
Performance(集成学习) = Performance(多个算法)> Performance(单个算法)

区别于统计里的集成方法,机器学习里的集成方法都是有限个数的base learners集合而成的。

在集成学习里涉及到的重要名词:

  1. base learner: 一般指的是弱分类器(效果差于random guess的分类器)
  2. ensemble: 集成器

2. Bagging


Bagging由两部分组成bootstrapaggregating

Bootstrap

从训练数据集中随机抽取(取出放回)B个n size样本训练B个分类器(回归器)

Aggregating

用少数服从多数的法则(Majority Vote)投票得出最后结果。(如果是算回归的,最后的投票方式改成算平均数即可)

可以看到Bagging的分类器是独立的,所以训练是并行的。

适用场景

Bagging的优点:倘若训练集中存在噪声,通过Bagging抽样就有机会不让有噪声的数据干扰到模型训练,从而降低模型的不稳定性(即降低方差)。

2.1 Random Forest


假设总特征数为P,随机森林是在Bagging的基础上,在每一次决策树往下分叉时,随机加入m个特征

3. Boosting


Boosting算法是将很多个弱分类器进行合成变成一个强分类器,和Bagging不同的是分类器之间是有关联性的,提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值,再训练新的分类器,所以训练过程是线性的。这样一来,那些没有得到正确分类的数据,由于其全职的加大而受到后一轮的弱分类器的更大关注。

适用场景

对于Boosting来说, 有两个关键:

  1. 如何改变训练数据的权重
  2. 如何将多个弱分类器组合成一个强分类器。(必须知道弱分类器识别准确率的下限

4. Summary

Bagging和Boosting哪个更好?

视情况而定,如果需要解决的问题是

  1. 单个模型表现太差(准确度不高),Boosting可以通过将弱分类器们组合起来得到一个错误率更低的综合模型。

If the problem is that the single model gets a very low performance, Bagging will rarely get a better bias. However, Boosting could generate a combined model with lower errors as it optimises the advantages and reduces pitfalls of the single model.

  1. 单个模型过拟合(over-fitting),Bagging可以通过会更好。

By contrast, if the difficulty of the single model is over-fitting, then Bagging is the best option. Boosting for its part doesn’t help to avoid over-fitting; in fact, this technique is faced with this problem itself. For this reason, Bagging is effective more often than Boosting.

上一篇 下一篇

猜你喜欢

热点阅读