目录
- Introduction & Motivation
- Bagging(2.1 Random Forest)
- Boosting
- Summary
1. Introduction & Motivation
俗话说,三个臭皮匠胜过一个诸葛亮。集成学习正是基于这种直观思想,而形成的提高机器学习准确率的方法。
传统的机器学习算法中,在假设空间(hypothesis space/hypotesis set)里,通过一次次的迭代实验过程中,搜索与未知函数的最近似函数
。
而,反观集成学习
建造一组由多个hypothesis
组合而成的整体hypothesis,然后采用一些模式让这些多个假说进行“投票”
,以推测新数据的标签
一般,
Performance(集成学习) = Performance(多个算法)> Performance(单个算法)
区别于统计里的集成方法,机器学习里的集成方法都是有限个数的base learners集合而成的。
在集成学习里涉及到的重要名词:
- base learner: 一般指的是弱分类器(效果差于random guess的分类器)
- ensemble: 集成器
2. Bagging
Bagging由两部分组成bootstrap和aggregating
Bootstrap
从训练数据集中随机抽取(取出放回)B个n size样本训练B个分类器(回归器)
Aggregating
用少数服从多数的法则(Majority Vote)投票得出最后结果。(如果是算回归的,最后的投票方式改成算平均数即可)
可以看到Bagging的分类器是独立的,所以训练是并行的。
适用场景
Bagging的优点:倘若训练集中存在噪声,通过Bagging抽样就有机会不让有噪声的数据干扰到模型训练,从而降低模型的不稳定性(即降低方差)。
2.1 Random Forest
假设总特征数为P,随机森林是在Bagging的基础上,在每一次决策树往下分叉时,随机加入m个特征
3. Boosting
Boosting算法是将很多个弱分类器进行合成变成一个强分类器,和Bagging不同的是分类器之间是有关联性的,提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值,再训练新的分类器,所以训练过程是线性的。这样一来,那些没有得到正确分类的数据,由于其全职的加大而受到后一轮的弱分类器的更大关注。
适用场景
- 降低偏差(提高准确度):新的分类器就会学习到错误分类资料的特性,进而提升分类结果。
- 降低方差(提高稳定性):最后结果也是用权重来整合所有分类器的分类结果。
对于Boosting来说, 有两个关键:
- 如何改变训练数据的权重
- 如何将多个弱分类器组合成一个强分类器。(必须知道弱分类器识别准确率的下限)
4. Summary
Bagging和Boosting哪个更好?
视情况而定,如果需要解决的问题是
- 单个模型表现太差(准确度不高),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.
- 单个模型过拟合(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.