#深入理解# AdaBoost 集成学习方法

在AdaBoost算法中每个样本会被赋予一个权重,然后依次训练多个分类器,每训练完一个分类器都会根据当前分类器的结果对每个样本被选中的概率进行更新并得到当前分类器的权重参数,如果某个样本被算错则增加此样本被选中的概率,反之则降低概率;最后根据更新后的样本权重重新选择N个样本去训练下一个分类器;预测时,将每个分类器的结果加权得到预测的结果

AdaBoost算法训练过程:

  1. 将正样本标签置为1,负样本标签置为-1
  2. 初始化样本被选中的概率(均匀分布,每个样本被选中的概率为1/n)
  3. 根据样本权重选取N个样本训练一个分类器
  4. 根据当前分类器的结果计算当前分类器在分类结果中的权重,同时更新样本被选中的权重(若样本被错分则增加样本被选中的概率)
  5. 根据更新后的样本权重重新选择N个样本,并训练下一个分类器
  6. 迭代执行步骤3、4直至算法收敛

其中:

第k个分类器在分类结果中的权重a_k为:

\alpha _k=\frac{1}{2}log(\frac{1-e_k}{e_k})

e_k=P(G_k( x_i)\neq y_i)=\sum_{i=1}^{m}w_{ki}I(G_{ki}\neq y_i)

上式中e_k表示第k个分类器的错误率;

每个样本权重系数的更新公式为:

w_{k+1,i}=\frac{w_{ki}}{Z_k}exp(-\alpha_ky_iG_k(x_i))

Z_k=\sum_{i-1}^{m}w_{ki}exp(-\alpha_ky_iG_k(x_i))

其中,Z_k是当前所有样本权重的和,除以Z_k目的是让所有样本权重和为1

 

使用Adaboost进行分类时,算法会根据每个分类器的权重将每个分类器的分类结果加权得到最终的分类结果,公式如下图所示:

f(x)=sign(\sum_{k=1}^{k}\alpha_kG_k(x))

sign(x)=\left\{\begin{matrix} 1,\: \: x>0\\ 0,\: \: x=0\\ -1,\: \: x<0\\ \end{matrix}\right.

Adaboost 解决回归问题

上述过程用于解决分类问题,使用Adaboost解决回归问题需要在几个地方进行修改

首先是第K个决策树对第i个样本的相对误差e_{ki},对于回归问题样本的相对误差,可以通过线性误差、平方误差或指数误差三种形式得到,公式如下:

e_{ki}=\frac{|y_i-G_k(x_i)|}{E_k}

e_{ki}=\frac{(y_i-G_k(x_i))^2}{E_k^2}

e_{ki}=1-exp(\frac{-|y_i-G_k(x_i)|}{E_k})

其中,E_k表示k个决策树在所有样本的最大误差,除以E_k类似softmax的操作,可以将所有样本的误差映射到0~1;根据每个样本的误差,我们可以得到第k个决策树在所有样本上的总误差e_k

e_k=\sum_{i=1}^{m}w_{ki}e_{ki}

由每个决策树的总误差e_k,我们可以得到每个决策树的权重参数\alpha_k

 

\alpha_k = \frac{e_k}{1-e_k}

每个样本的权重参数w_{k+1,i}

w_{k+1,i}=\frac{w_{ki}}{Z_k}\alpha_k^{1-e_{ki}}

Z_k = \sum\limits_{i=1}^{m}w_{ki}\alpha_k^{1-e_{ki}}

 Z_k为规范化因子,除以Z_k后可以令所有样本权重之和为1

最后是结合策略,和分类问题中的加法集成策略不同,回归问题采用的是对弱学习器的权重排序,然后取权重中位数对应的弱分类器作为整个分类器的强分类器输出结果

f(x)=G_m*(x)

其中G_m*(x)是所有决策树的权值中位数对应的决策树

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

energy_百分百

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值