最近在回顾整理之前似懂非懂的知识点,其中就有集成方法(Ensemble Method)。

本文将简要阐述 Bagging 和 Boosting 两种集成方法,并且抛砖引玉地探讨基于这两者的算法及其优劣。

0x00 Intro

在学习总结 Ensemble Method 之前,有一个预备知识需要学习:Bias & Variance,这两个概念在机器学习领域可算是举足轻重。

在此放一张图,用于理解 Bias 和 Variance。



Bias And 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