机器学习----集成学习(Boosting)

Boosting是一族可将弱学习器提升为强学习器的算法。这族算法的工作机制类似:
先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的样本在后面受到更多关注。

AdaBoost

一直觉得AdaBoost这个名字起得好呀,全拼是Adaptive Boosting;adaptive是适应的,适合额意思。但是世界上第一个程序媛不也叫Ada嘛~
这里写图片描述
haha~扯远了。我们看看AdaBoost是怎么提升正确率的。

实现

在理论推导之前我们先看看它到底是怎么做的。
现在我们有训练集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } D=\{(\mathbf{x_1},y_1),(\mathbf{x_2},y_2), ... ,(\mathbf{x_m},y_m)\} D={ (x1,y1),(x2,y2),...,(xm,ym)},基学习算法 φ \varphi φ。其中 Y ∈ { − 1 , + 1 } Y\in\{-1,+1\} Y{ 1,+1}

  • 第一次训练我们就像平常一样,每个样例的权重为 1 / m 1/m 1/m

  • 我们为每个训练好的学习器附加权重,因为我们最后要线性求和学习器输出结果。这个权重怎么分配呢?我们让它与分类错误率挂钩。设第k个学习器的分类错误率为 ϵ k \epsilon_k ϵk,则权重为
    α k = 1 2 l n ( 1 − ϵ t ϵ t ) \alpha_k=\frac{1}{2}ln(\frac{1-\epsilon_t}{\epsilon_t}) αk=21ln(ϵt1ϵt)

  • 为了下一次的基学习器的训练,我们需要改变样本权重,大致思想为,这次分类对的缩小权重,这个分类错的,加大。这个权重的变更也跟 ϵ k \epsilon_k ϵk有关:
    D k + 1 ( x ) = D k ( x ) Z k × { e x p ( − α k ) , i f   h k ( x ) = f ( x ) e x p ( α k ) , i f   h k ( x ) ≠ f ( x ) = D k ( x ) Z k × e x p ( − α k f ( x ) h k ( x ) ) D_{k+1}(x)=\frac{D_k(\mathbf{x})}{Z_k}\times\begin{cases} exp(-\alpha_k),if h_k(\mathbf{x})=f(\mathbf{x})\\ exp(\alpha_k),if h_k(\mathbf{x})\neq f(\mathbf{x}) \end{cases}\\ =\frac{D_k(\mathbf{x})}{Z_k}\times exp(-\alpha_kf(\mathbf{x})h_k(\mathbf{x})) Dk+1(x)=ZkDk(x)×{ exp(αk),if hk(x)=f(x)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值