随机森林样本权重的计算-弱学习器
摘要:本文介绍了AdaBoost算法中样本权重更新的核心公式和计算步骤。公式中,$D_t(x)$表示样本权重,$a_t$为模型权重,通过指数规则调整预测正确/错误样本的权重(乘以$e^{-a_t}$或$e^{a_t}$),并用归一化因子$Z_t$保证权重总和为1。计算步骤包括初始等权重分配、计算$Z_t$和更新权重。举例展示了3个样本的权重更新过程:预测错误的样本权重增加,正确的减少,最终归一化。
1. 公式符号含义
Dt(x)D_t(x)Dt(x):第 ttt 轮时,某个样本 xxx 的权重
Dt+1(x)D_{t+1}(x)Dt+1(x):第 t+1t+1t+1 轮时,这个样本 xxx 的更新后权重
ZtZ_tZt:归一化因子(第 ttt 轮所有样本权重调整后的总和,保证新权重总和为 1)
ata_tat:第 ttt 轮模型的权重(通常由模型错误率计算得出,如 AdaBoost 中 at=12ln(1−ϵtϵt)a_t = \frac{1}{2}\ln\left(\frac{1-\epsilon_t}{\epsilon_t}\right)at=21ln(ϵt1−ϵt),ϵt\epsilon_tϵt 是错误率)
指数项规则:
若样本 xxx 预测值 = 真实值 → 乘以 e−ate^{-a_t}e−at(降低该样本权重)
若样本 xxx 预测值 ≠ 真实值 → 乘以 eate^{a_t}eat(提高该样本权重)
2. 计算步骤
-
初始权重设定
第一轮时,所有样本权重通常相等,即
D1(xi)=1N(i=1,2,…,N) D_1(x_i) = \frac{1}{N} \quad (i=1,2,\dots,N) D1(xi)=N1(i=1,2,…,N)
其中 (N) 是样本总数。 -
计算归一化因子 (Z_t)
把第 (t) 轮所有样本的权重按预测结果乘以对应指数项后求和:
Zt=∑i=1NDt(xi)×{e−at预测正确eat预测错误 Z_t = \sum_{i=1}^N D_t(x_i) \times \begin{cases} e^{-a_t} & \text{预测正确} \\ e^{a_t} & \text{预测错误} \end{cases} Zt=i=1∑NDt(xi)×{e−ateat预测正确预测错误 -
更新每个样本的权重
对每个样本,用第 (t) 轮的权重乘以对应指数项,再除以 (Z_t) 得到第 (t+1) 轮的权重:
Dt+1(xi)=Dt(xi)×{e−at预测正确eat预测错误Zt D_{t+1}(x_i) = \frac{D_t(x_i) \times \begin{cases} e^{-a_t} & \text{预测正确} \\ e^{a_t} & \text{预测错误} \end{cases}}{Z_t} Dt+1(xi)=ZtDt(xi)×{e−ateat预测正确预测错误
3. 举例计算
假设:
- 样本数 (N=3),初始权重 (D_1(x_1)=D_1(x_2)=D_1(x_3)=\frac{1}{3})
- 第 1 轮模型预测:(x_1) 正确,(x_2) 错误,(x_3) 正确
- 模型权重 (a_1 = 0.5)(由错误率计算得出)
步骤 1:计算 (Z_1)
Z1=13e−0.5+13e0.5+13e−0.5 Z_1 = \frac{1}{3}e^{-0.5} + \frac{1}{3}e^{0.5} + \frac{1}{3}e^{-0.5} Z1=31e−0.5+31e0.5+31e−0.5
=2e−0.5+e0.53 = \frac{2e^{-0.5} + e^{0.5}}{3} =32e−0.5+e0.5
步骤 2:更新样本权重
D2(x1)=13e−0.5Z1,D2(x2)=13e0.5Z1,D2(x3)=13e−0.5Z1 D_2(x_1) = \frac{\frac{1}{3}e^{-0.5}}{Z_1}, \quad D_2(x_2) = \frac{\frac{1}{3}e^{0.5}}{Z_1}, \quad D_2(x_3) = \frac{\frac{1}{3}e^{-0.5}}{Z_1} D2(x1)=Z131e−0.5,D2(x2)=Z131e0.5,D2(x3)=Z131e−0.5
可以看到:
- 预测错误的 (x_2) 权重被放大(乘以 (e^{0.5}))
- 预测正确的 (x_1, x_3) 权重被缩小(乘以 (e^{-0.5}))
- 最终通过 (Z_1) 归一化,确保所有新权重总和为 1
这个公式是 AdaBoost 算法的核心,目的是让后续模型更关注之前预测错误的样本,从而提升整体分类能力。
要不要我帮你整理一份带完整数值的计算步骤清单,让你可以直接照着算?
更多推荐



所有评论(0)