Adaboost算法和提升树算法

AdaBoost是一种自适应增强的机器学习算法,通过不断调整训练数据的权重,重点训练先前错误分类的样本,构建一系列弱分类器并组合成强分类器。其核心是前向分步算法,通过优化指数损失函数,每次迭代找到最佳基本分类器Gm(x)。而提升树是AdaBoost的特例,以决策树为基函数,通过拟合残差构建回归或分类树。

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

AdaBoost,是英文"Adaptive Boosting"(自适应增强),它的自适应在于:前一个基本分类器分错的样本会得到加强,加权后的全体样本再次被用来训练下一个基本分类器。同时,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数

AdaBoost算法

输入:训练数据集KaTeX parse error: Undefined control sequence: \cal at position 51: …_N)\}, x_i\in \̲c̲a̲l̲ ̲X\sube \R^n, 弱学习方法

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

步骤:

(1) 初始化训练数据的权值分布 D 1 = ( w 11 , ⋯   , w 1 i , ⋯   , w 1 N ) , w 1 i = 1 N , i = 1 , 2 , … , N D_1=(w_{11},\cdots,w_{1i},\cdots,w_{1N}),w_{1i}=\frac{1}{N},i=1,2,\ldots,N D1=(w11,,w1i,,w1N),w1i=N1,i=1,2,,N

(2) 对于第m次迭代( m = 1 , 2 , … , M m = 1,2, \ldots,M m=1,2,,M):

​ (a) 使用具有权值分布 D m D_m Dm的训练数据集学习,得到基本的分类器:
G m ( x ) : X − > { − 1 , + 1 } G_m(x):\mathcal X->\{-1,+1\} Gm(x):X>{ 1,+1}

​ (b) 求 G m ( x ) G_m(x) Gm(x)在训练集上的分类误差率 :
e m = ∑ i = 1 N P ( G m ( x i ) ≠ y i ) = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) e_m=\sum_{i=1}^{N}P(G_m(x_i)\ne y_i)=\sum_{i=1}^{N}w_{mi}I(G_m(x_i)\ne y_i) em=i=1NP(Gm(xi)=yi)=i=1NwmiI(Gm(xi)=yi)
​ © 计算 G m ( x ) G_m(x) Gm(x)的系数:
α m = 1 2 l o g 1 − e m e m \alpha_m=\frac{1}{2}log\frac{1-e_m}{e_m} αm=21logem1em

​ (d) 更新训练集的权值分布:
w m + 1 , i = w m i Z m e x p ( − α m y i G m ( x i ) ) w_{m+1,i}=\frac{w_{mi}}{Z_m}exp(-\alpha_my_iG_m(x_i)) wm+1,i=Zmwmiexp(αmyiGm(xi))

​ 其中, Z m Z_m Zm 是规范化因子, Z m = ∑ i = 1 N w m i e x p ( − α m y i G m ( x i ) ) Z_m=\sum_{i=1}^Nw_{mi}exp(-\alpha_my_iG_m(x_i)) Zm=i=1Nwmiexp(αmyiGm(xi))

(3) 构建基本分类器的线性组合:
f ( x ) = ∑ m = 1 M α m G m ( x ) f(x)=\sum_{m=1}^M\alpha_mG_m(x) f(x)=m=1MαmGm(x)

(4) 最终分类器:
G ( x ) = s i g n ( f ( x ) ) = s i g n ( ∑ m = 1 M α m G m ( x ) ) G(x)=sign(f(x))=sign(\sum_{m=1}^M\alpha_mG_m(x)) G(x)=sign(f(x))=sign(m=1MαmGm(x))

说明:

步骤(1)假设训练数据具有均匀的权值分布,即每个训练样本在基本分类器的学习中作用相同,这一假设保证第一步能够在原始数据上学习基本分类器 G 1 ( x ) G_1(x) G1(x)

步骤(2)AdaBoost 反复学习基本分类器,在每一轮 m = 1 , 2 … , M m=1,2\ldots,M m=1,2,M 顺次执行下列操作:

(a)使用当前分布 D m D_m Dm 加权的训练数据集,学习基本分类器 G m ( x ) G_m(x) Gm(x)

(b)计算基本分类器 G m ( x ) G_m(x) Gm(x) 在加权训练集上的误分类误差:
e m = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) = ∑ G m ( x i ) ≠ y i w m i e_m=\sum_{i=1}^{N}w_{mi}I(G_m(x_i)\ne y_i) = \sum_{G_m(x_i) \ne y_i} w_{mi} em=i=1NwmiI(Gm(xi)=yi)=Gm(xi)=yiwmi
​ 误差率是指被 G m ( x ) G_m(x) Gm(x)误分类样本的权值之和。

(c)计算基本分类器 G m ( x ) G_m(x) Gm(x)的系数 α m \alpha_m αm。由:
α m = 1 2 l o g 1 − e m e m \alpha_m=\frac{1}{2}log\frac{1-e_m}{e_m} αm=21logem1em
​ 可知,当 e m ≤ 1 2 e_m \leq \frac{1}{2} em21 时, α m ≥ 0 \alpha_m \geq 0 αm0,且 α m \alpha_m αm 随着 e m e_m em 的减小而增大,所以分类误差率越小的基本分类器在最终分类器中的作用越大。

(d)更新训练数据的权值分布为下一轮做准备。式 w m + 1 , i = w m i Z m e x p ( − α m y i G m ( x i ) ) w_{m+1,i}=\frac{w_{mi}}{Z_m}exp(-\alpha_my_iG_m(x_i)) wm+1,i=Zmwmiexp(αmyiGm(xi))中:

y i = G m ( x i ) y_i=G_m(x_i) yi=Gm(xi)时, y i G m ( x i ) = 1 y_iG_m(x_i)=1 yiGm(xi)=1

y i ≠ G m ( x i ) y_i\ne G_m(x_i) yi=Gm(xi)时, y i G m ( x i ) = − 1 y_iG_m(x_i)=-1 yiGm(xi)=1

所以有:
w m + 1 , i = { w m i Z m e − α m y i = G m ( x i ) w m i Z m e α m y i ≠ G m ( x i ) w_{m+1,i}=\begin{cases} \frac{w_{mi}}{Z_m}e^{-\alpha_m} \quad y_i=G_m(x_i) \\\frac{w_{mi}}{Z_m}e^{\alpha_m} \qquad y_i\ne G_m(x_i) \end{cases} wm+1,i={ Zmwmieαmyi=Gm(xi)Zmwmieα

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值