机器学习——集成学习(Boosting,Bagging)

1. 概念

集成学习(ensamble learning)通过构建并结合多个学习器来完成学习任务。集成中只包含同种类型的个体学习期称为“同质”的(homogeneous),同质集成中的个体学校称为“基学习器”,相应的学习算法称为“基学习算法”。集成也可包含不同类型的个体学习期,这样的集成是“异质”的(heterogenous),异质集成的个体学习器称为“组件学习器”(component leader)或直接称为个体学习器。要想获得好的集成,个体学习器应该“好而不同”,即个体学习器要有一定的“准确性”,并且要有“多样性”,即学习器间具有差异。目前集成学习分为两大类,即个体学习器间存在强依赖关系、必须串行生成的序列化方法,以及个体学习器间不存在强依赖关系、可同时生成的并行化方法,前者代表是Boosting,后者代表是Bagging和随机森林(Random Forest)。

集成学习示意图

2. Boosting

Boosting是一族可将弱学习器提升为强学习器的算法。这族算法的工作机制类似:先从初始训练集训练处一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直到基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。Boosting的代表算法是AdaBoost(Adaptive Boosting)

Adaboost算法:

假设给定一个二分类的训练数据

(sign(x)为符号函数,x>0输出1,x<0输出-1)

G_i(x)代表个体学习器,\alpha_i表示该个体学习器的重要性)

例 给定如下表所示训练数据。假设个体学习器由x(输入)和y(输出)产生,其阈值v(判定正反例的分界线)使该分类器在训练数据集上分类误差率最低。(y=1为正例,y=-1为反例)

第一个个体学习器:

我们首先认为x_i(i=1,2,…,10)的权重是一样的,即每一个数据同等重要。(权重是用来计算误差的)

D_1

(a)在权值分布为D_1的训练数据上,阈值v取2.5(红线)时分类误差率最低(此时x=6,7,8的数据被错分为反例,误差为它们的权重之和e_1=0.1+0.1+0.1=0.3,误差率小于\frac{1}{2}才有意义),故个体学习器为\[G_1(x)=\begin{cases} 1&\text{$x<2.5$},\\ -1& \text{$x>2.5$}. \end{cases}\]

 

(b)根据误差e_1计算系数\alpha_1=0.4236(公式:\alpha i=\frac{1}{2}\ln \frac{1-ei}{ei},可以发现只有当e_i<\frac{1}{2}时,\alpha_i>0,这样个体学习器才是有意义的)

 

(c)更新训练数据的权值分布(公式:w_{m+1,i}=\frac{w_{m,i}}{Z_m}exp \left( -\alpha_my_iG_m\left( x_i \right)  \right) , i=1,2,\cdot \cdot \cdot,NZ_m=\sum_{i=1}^{N}{w_{m,i}exp\left( -\alpha_my_iG_m\left( x_i \right)  \right) },Z_m是为了保证每次权值总和为1)

 

(通过指数损失函数exp\left( x \right)调整权重,分类正确的降低权重(y_iG_m\left( x_i \right)同号则y_iG_m\left( x_i \right)>0-\alpha_my_iG_m\left( x_i \right)<0),分类错误的增加权重):

D_2(权重之和始终为1)

可以看到x=6,7,8的数据的权重变大了,而其他数据的权重降低了,这是希望能把之前经常分类错误(经常分类错误会出现权重不断变大)的数据能在下一个个体学习器分类正确(记住:权重是用来计算误差的,为了降低误差,选择阈值时会倾向把权重大的分类正确)

f_1(x)=\alpha_1G_1(x)=0.4236G_1(x)\[0.4236G_1(x)=\begin{cases} 0.4236*1&\text{$x<2.5$},\\ 0.4236*(-1)& \text{$x>2.5$}. \end{cases}\]
\[sign[f_1(x)]=\begin{cases} 1&\text{$x<2.5$},\\ -1& \text{$x>2.5$}. \end{cases}\]

集成学习器sign[f_1(x)](第一次集成,只有一个个体学习器)在训练数据集上有3个误分类点

 

第二个个体学习器:

D_2

(a)在权值分布为D_2的训练数据上,阈值v取8.5时分类误差率最低(此时x=3,4,5的数据被错分为正例,误差为它们的权重之和e_2=0.07143+0.07143+0.07143=0.2143,误差率降低了!),故个体学习器为\[G_2(x)=\begin{cases} 1&\text{$x<8.5$},\\ -1& \text{$x>8.5$}. \end{cases}\]

(b)根据误差e_2计算系数\alpha_2=0.6496

(c)更新训练数据的权值分布(在D_2的基础上调整D_3,分类正确的降低权重,分类错误的增加权重):

D_3

对比D_2可以看到x=3,4,5的数据的权重变大了,而其他权重降低了。

\[0.4236G_1(x)=\begin{cases} 0.4236*1&\text{$x<2.5$},\\ 0.4236*(-1)& \text{$x>2.5$}. \end{cases}\]\[0.6496G_2(x)=\begin{cases} 0.6496*1&\text{$x<8.5$},\\ 0.6496*(-1)& \text{$x>8.5$}. \end{cases}\]


f_2(x)=\alpha_1G_1(x)+\alpha_2G_2(x)=0.4236G_1(x)+0.6496G_2(x)

\[f_2(x)=\begin{cases} 0.4236*1+0.6496*1=1.0732&\text{$x<2.5$},\\ 0.4236*(-1)+0.6496*1=0.226& \text{$2.5<x<8.5$},\\ 0.6496*(-1)=-0.6496& \text{$x>8.5$}, \end{cases}\](注意:x<2.5时,也<8.5)

\[sign[f_2(x)]=\begin{cases} 1&\text{$x<8.5$},\\ -1&\text{$x>8.5$}. \end{cases}\]

分类器sign[f_2(x)]在训练数据集上有3个误分类点

第三个个体学习器:

D_3

(a)在权值分布为D_3的训练数据上,阈值v取5.5时分类误差率最低(e_3=0.1820,误差率又降低了!x=0,1,2,9被分类错误),故个体学习器为\[G_3(x)=\begin{cases} -1&\text{$x<5.5$},\\ 1& \text{$x>5.5$}. \end{cases}\]

 

(b)根据误差e_3计算系数\alpha_3=0.7514

(c)更新训练数据的权值分布:

D_4

f_3(x)=\alpha_1G_1(x)+\alpha_2G_2(x)+\alpha_3G_3(x)
\[f_3(x)=\begin{cases} 0.3218&\text{$x<2.5$},\\ -0.5254&\text{$2.5<x<5.5$},\\ 0.9774&\text{$5.5<x<8.5$},\\ -0.3218&\text{$x>8.5$}. \end{cases}\]
\[sign[f_3(x)]=\begin{cases} 1&\text{$x<2.5$},\\ -1&\text{$2.5<x<5.5$},\\ 1&\text{$5.5<x<8.5$},\\ -1&\text{$x>8.5$}. \end{cases}\]

(自己算一算吧)

最终结果:

分类器sign[f_3(x)]在训练数据集上有0个误分类点

 3. Bagging

欲得到泛化能力强的集成,集成中的个体学习器应尽可能具有较大的差异。Bagging是并行集成学习方法最著名的代表。假设给定m个样本的数据集,我们先随机取一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中,经过m次采样得到m个样本的采样集,约有初始训练集63.2%的样本,初始训练集的样本有的多次出现,有的则从未出现。照这样,我们可采样出T个包含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些学习器进行结合。这就是Bagging的基本流程。

在对预测输出进行结合时,Bagging通常对分类任务进行简单投票法,对回归任务进行简单平均法。

Bagging算法

 

Bagging的优点:每个基学习器值使用了训练集中63.2%的样本,剩下的36.8%的样本可用作验证集。

Bagging主要关注降低方差,因此在决策树、神经网络等易受样本扰动的学习器上效用更为明显

4.随机森林

随机森林(Random Forest,简称RF)是Bagging的一个扩展变体。RF在以决策树为基学习器构建Bagging集成的基础上引入了随机属性选择。在RF中,对基决策树的每个结点先随机选择k个属性,然后从k个属性中选择最优属性划分,一般推荐d为所有属性个数。随机森林不需要特征处理,不用剪枝,每棵树都生长到不能生长了(即每个叶子节点的纯度为1),对特征比较多的适用.输出采用投票法(分类问题)、加和平均值法(回归问题)。

 

 

本文参考 西瓜书-周志华        统计学习方法-李航

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值