集成学习(二):AdaBoost算法解释

本文通过加法模型详细解析了AdaBoost算法的工作原理,介绍了如何利用指数损失函数来最小化错误率,并逐步推导出基函数Gm(x)及系数αm的计算方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 前言

在之前的博客中讲解了AdaBoost算法的原理,为了能够更加直观理解AdaBoost算法,常用的解释模型便是使用加法模型。

2. 加法模型解释

首先定义AdaBoost的加法模型为:

f(x)=m=1MαmGm(x)f(x)=∑m=1MαmGm(x)

其中αmαm是基函数的系数,Gm(x)Gm(x)为基函数。则就可以使用指数函数定义损失函数
L(y,f(x))=exp(yf(x))L(y,f(x))=exp(−yf(x))

假设经过m1m−1次迭代之后得到的模型为:
fm1(x)=fm2(x)+αm1Gm1(x)=α1G1(x)++αm1Gm1(x)fm−1(x)=fm−2(x)+αm−1Gm−1(x)=α1G1(x)+…+αm−1Gm−1(x)

得到第mm次的迭代得到αm,Gm(x)fm(x)
fm(x)=fm1(x)+αmGm(x)fm(x)=fm−1(x)+αmGm(x)

目标是使前向分布算法得到的αm,Gm(x)fm(x)αm,Gm(x)和fm(x)在训练数据集T上的指数损失函数最小化,即是
(αm,Gm(x))=argmina,mi=1Nexp[yi(fm1(xi)+αG(xi))]=argmina,mi=1Nwmiexp(αG(xi))](αm,Gm(x))=argmina,m∑i=1Nexp[−yi(fm−1(xi)+αG(xi))]=argmina,m∑i=1Nwmiexp(αG(xi))]

其中
wmi=exp(yifm1(xi))wmi=exp(−yifm−1(xi))

上式中最小化之后的αm,Gm(x)αm∗,Gm∗(x)就是AdaBoost算法得到的αm,Gm(x)αm,Gm(x)。则对其进行求解就分为了两步,先求解Gm(x)Gm∗(x)
Gm(x)argminGi=1NwmiI(yiG(xi))Gm∗(x)argminG∑i=1NwmiI(yi≠G(xi))

之后求解αmαm∗
i=1Nwmiexp(αG(xi))]=yi=Gm(xi)wmieα+yiGm(xi)wmieα=(eαeα)i=1NwmiI(yiG(xi))∑i=1Nwmiexp(αG(xi))]=∑yi=Gm(xi)wmie−α+∑yi≠Gm(xi)wmieα=(eα−e−α)∑i=1NwmiI(yi≠G(xi))

将已经求得的Gm(x)Gm∗(x)带入上式,对αα求导并使倒数为0,即可得到让目标函数最小的αα
αm=12log1+ememαm∗=12log1+emem

其中emem是分类误差率:
em=Ni=1wmiI(yiG(xi))Ni=1wmiem=∑i=1NwmiI(yi≠G(xi))∑i=1Nwmi

这里基函数权值系数的更新是与AdaBoost算法一致的,对于样本权值系数的更新是这样的
wm+1,i=wm,iexp(yiαmGm(x))wm+1,i=wm,iexp(−yiαmGm(x))

3. 参考

  1. 统计学习方法——李航
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值