Ensemble Method : Bagging & Boosting
最近在回顾整理之前似懂非懂的知识点,其中就有集成方法(Ensemble Method)。
本文将简要阐述 Bagging 和 Boosting 两种集成方法,并且抛砖引玉地探讨基于这两者的算法及其优劣。
0x00 Intro
在学习总结 Ensemble Method 之前,有一个预备知识需要学习:Bias
& Variance
,这两个概念在机器学习领域可算是举足轻重。
在此放一张图,用于理解 Bias 和 Variance。
简单来说,Bias 和 Variance 分别代表 准
和 确
两个概念。
推荐推荐阅读:Understanding the Bias-Variance Tradeoff
0x01 Bagging
Boostrap Aggregating
从原始样本中随机采样。每轮从 N
个原始样本中有放回的抽取 n
个样本(Bootstrap 方法)作为训练集,共进行 k
轮抽取,得到 k 个训练集(训练集之间相互独立)。
每次使用一份训练集训练一个模型,k 个训练集共得到 k 个基模型。
对 分类问题
:k 个基模型进行投票,少数服从多数。
对 回归问题
:计算 k 个基模型得出的结果求均值。
其中,所有模型的重要性相同。
特点:
1、可并行的集成方法。每个基模型可以分别、独立、互不影响地生成。
2、主要降低 Variance,对 Bias 有细微作用
3、适用于 High Variance & Low Bias 的模型
基于该方法的集成算法代表:随机森林(Random Forest)
0x02 Boosting
Boosting 提升方法
核心思想是将多个 弱分类器
组装成一个 强分类器
,通俗一点就是 三个臭皮匠赛过诸葛亮
的思想。
对于 Boosting 来说,有两个问题需要回答:
1.)每一轮如何改变训练数据的权值或概率分布
(对于 AdaBoost 而言)提高那些被前一轮弱分类器错误分类样本的权值,降低那些被正确分类样本的权值。
2.)如何将弱分类器组合成一个强分类器
(对于 AdaBoost 而言)使用加权多数表决的方法。具体地说,加大分类误差率低的弱分类器的权值,使其在表决中起较大的作用;反之亦然。
特点:
1、序贯式集成方法(Sequential Ensemble)。每轮迭代生成的基模型,主要提升前一代基模型表现不好的地方。
2、降低 Bias
3、适用于 Low Variance & High Bias 的模型
基于该方法的集成算法代表:AdaBoost、GBDT、XGBoost
0x03 Overview
1)样本选择:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
4)并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
组合算法
1)Bagging + 决策树 = 随机森林 Random Forest
2)Boosting + 决策树 = 提升树 Boosting Tree
3)Gradient Boosting + 决策树 = GBDT
0x04 Reference
[1] 李航. 统计方法学
[2] Understanding the Bias-Variance Tradeoff http://scott.fortmann-roe.com/docs/BiasVariance.html
[3] Bagging Boosting Lecture http://www.cs.cornell.edu/courses/cs578/2005fa/CS578.bagging.boosting.lecture.pdf
[4] Bagging, boosting and stacking in machine learning https://stats.stackexchange.com/questions/18891/bagging-boosting-and-stacking-in-machine-learning
[5] Bagging 和 Boosting 概念及区别 http://www.cnblogs.com/liuwu265/p/4690486.html