统计学习方法之提升算法Adaboost

不同于之前讲的SVM、决策树、朴素贝叶斯算法,提升算法本着“三个臭皮匠,顶个诸葛亮”的原则,将多个性能一般的模型"组装"成一个高性能模型。Bagging和Boosting是最常用到的模型融合方法,最经典的Bagging模型是随机森林,boosting的经典算法有adaboost和梯度提升决策树(gbdt),后面都会讲到,这篇文章先介绍adaboost。

adaboost (adaptive boosting),直译为自适应提升算法。它是一种前向分步算法,每一步根据当前样本权值训练一个基模型G_m(x,y),达到最小化分类误差的目的。Adaboost算法的两个环节是样本权值调整策略和子模型融合策略。对于样本权值调整,Adaboost算法会根据上一个子模型分类结果,增大误分类样本的权重,减小正确分类样本的权值;对于子模型融合,Adaboost会根据每个子模型的误分类率计算模型权重,通过加权多数表决的方式决定样本的预测值。

下面详细介绍Adaboost的原理。对于训练集D=\left \{ (x_1, y_1), (x_2, y_2), ..., (x_n, y_n) \right \}, y_i\in \left \{0, 1 \right \},每个样本的初始权重\omega _{1i}=1/n。对于第m={1,2, ..., M}个基模型:

(1) 根据权重训练基模型G_m(x,y),达到最小化误分类率\sum_{i=1}^{n}\omega_{mi}I(y_i, G_m(x_i, y_i))的目的。

(2) 计算模型误分类率:e_m = \sum_{i=1}^{n}\omega_{mi}I(x_i, y_i)

(3) 计算模型权重:\alpha_m = \frac{1}{2}log\frac{1-e_m}{e_m}

(4)更新每个样本的权重:\omega_{m+1,i} = \frac{\omega_{mi}}{Z_m}e^{-y_iG_m(x_i, y_i)\alpha_m} =\left \{ \begin{matrix} \frac{\omega_{mi}}{Z_m}e^{-\alpha_m}, y_i=G_m(x_i, y_i)\\ \frac{\omega_{mi}}{Z_m}e^{\alpha_m}, y_i\neq G_m(x_i, y_i) \end{matrix} \right.,其中Z_m=\sum_{i=1}^n\omega_{mi}e^{-y_iG_m(x_i, y_i)\alpha_m}。当样本分类正确时,权值减小;分类错误,权值增大。

我们最终得到的模型为:f(x,y) = \sum_{m=1}^M\alpha_mG_m(x,y),预测时根据f(x,y)的正负决定预测的类别。<0为负类,>0为正类。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值