提升方法总结

1. Boosting

提升方法通过改变训练样本权重,学习多个分类器,并将分类器线性组合提高分类性能。Boosting需要做到两件事,一是在每一轮如何改变训练数据的权值或概率分布;二是如何将弱分类器组合成一个强分类器。

2. AdaBoost

为了解决Boosting的两个要求,adaboost在每一轮提高被错分的样本的权值,降低正确分类样本的权值。在组合分类器的时候,给误分率小的分类器较大权值,误分率大的分类器较小权值。一句话概括adaboost就是用样本权值计算分类器的权值,再用分类器的权值去更新样本的权值。

AdaBoost的过程如下:

 输入:训练数据集T ={(x1, y1), (x2, y2), ..., (xN, yN)},其中xi∈X⊆Rn,yi∈Y={-1, +1};

 输出:最终分类器G(x)

1. 初始化训练数据的权值分布

w=(w_1,w_2,w_3...w_n) \qquad w_i=\frac{1}{N}

2. 在每一轮训练中,设当前训练到第m轮

(a) 使用带权训练数据学习,得到该轮的基本分类器       G_m(x):X->(-1,1)

(b) 计算当前分类器的误分类率

e_m=\sum_{i=1}^{n}w_iI(G_m(x)\neq y)

(c) 计算当前分类器G_m的权值

\alpha _m=\frac{1}{2}log\frac{1-e_m}{e_m}

(d) 更新样本的权值

w_{m+1,i}=\frac{w_{mi}}{Z_m} e^{-\alpha _my_iG_m(x_i)}

观察上式,Z_m是w_{mi} e^{-\alpha _my_iG_m(x_i)}的归一化因子,e是自然对数,e的指数其实就是\alpha _m的正负项,可以验证当分类正确的时候指数是负的,当分类错误的时候指数是正的,这样就有对误分的样本增大权值,对分类正确的样本减小权值的效果。

3. 最终分类器是每轮分类器的加权线性组合

adaboost的本质

adaboost是模型为加法模型,损失函数为指数函数,学习算法为前向分步算法时的二类分类学习方法。

解释:http://breezedeus.github.io/2015/07/12/breezedeus-adaboost-exponential-loss.html

3. GBDT

梯度提升树(Gradient Boosting Decison Tree),和adaboost一样也是迭代模型,使用了前向分布算法,但是弱学习器限定了只能使用CART回归树模型。在迭代的过程中,当前的分类器目标是拟合前一轮分类器的残差。下面是一个预测年龄的例子,我们限定树只能有两层,第一轮预测了15和25(预测值是子节点样本的均值),第二轮预测的是第一轮的残差。最后的预测结果是所有树预测的和。

GBDT过程:

1. 初始化分类器

f_0(x)=argmin \sum_{i=1}^{m}L(y_i,c)

2. 对迭代1,2....T轮:

(a) 样本1,2,...m,计算负梯度。注意负梯度是t-1轮模型的负梯度,我们用t-1的负梯度来生成第t轮的树

之所以是计算负梯度,和损失函数有关,GBDT常用的损失函数有均方差、绝对损失等,以均方差损失函数为例

L(y,x)=\frac{1}{2}(y-f(x))^2

梯度是-(y-f(x)),负梯度正好是预测的残差,所以说GBDT拟合残差就是在拟合负梯度

(b) 利用(x_i,r_{ti})拟合CART回归树,得到第t轮的回归树T

(c) 更新模型

f_m(x)=f_{m-1}(x)+T

(d) 输出模型

GBDT分类

由于GBDT使用的是cart回归树,而分类的标签是离散的标签,所以实现方法和回归不同。分类的GBDT常用损失函数有指数函数和对数损失。当用指数损失函数的时候,GBDT退化为adaboost

当用对数释然函数的时候,用预测概率和真实概率的差来拟合损失

参考

https://zhuanlan.zhihu.com/p/31639299

https://blog.csdn.net/herr_kun/article/details/81139457

https://www.jianshu.com/p/005a4e6ac775  参数设置

https://www.zhihu.com/question/63560633

https://zhuanlan.zhihu.com/p/25257856

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值