随机森林样本权重的计算-弱学习器


1. 公式符号含义

D t ( x ) D_t(x) Dt(x):第 t t t 轮时,某个样本 x x x 的权重

D t + 1 ( x ) D_{t+1}(x) Dt+1(x):第 t + 1 t+1 t+1 轮时,这个样本 x x x 的更新后权重

Z t Z_t Zt:归一化因子(第 t t t 轮所有样本权重调整后的总和,保证新权重总和为 1)

a t a_t at:第 t t t 轮模型的权重(通常由模型错误率计算得出,如 AdaBoost 中 a t = 1 2 ln ⁡ ( 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 是错误率)

指数项规则:

若样本 x x x 预测值 = 真实值 → 乘以 e − a t e^{-a_t} e−at(降低该样本权重)

若样本 x x x 预测值 ≠ 真实值 → 乘以 e a t e^{a_t} eat(提高该样本权重)

2. 计算步骤

  1. 初始权重设定

    第一轮时,所有样本权重通常相等,即
    D 1 ( x i ) = 1 N ( 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) 是样本总数。

  2. 计算归一化因子 (Z_t)

    把第 (t) 轮所有样本的权重按预测结果乘以对应指数项后求和:
    Z t = ∑ i = 1 N D t ( x i ) × { e − a t 预测正确 e a t 预测错误 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预测正确预测错误

  3. 更新每个样本的权重

    对每个样本,用第 (t) 轮的权重乘以对应指数项,再除以 (Z_t) 得到第 (t+1) 轮的权重:
    D t + 1 ( x i ) = D t ( x i ) × { e − a t 预测正确 e a t 预测错误 Z t 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)
Z 1 = 1 3 e − 0.5 + 1 3 e 0.5 + 1 3 e − 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
= 2 e − 0.5 + e 0.5 3 = \frac{2e^{-0.5} + e^{0.5}}{3} =32e−0.5+e0.5

步骤 2:更新样本权重
D 2 ( x 1 ) = 1 3 e − 0.5 Z 1 , D 2 ( x 2 ) = 1 3 e 0.5 Z 1 , D 2 ( x 3 ) = 1 3 e − 0.5 Z 1 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 算法的核心,目的是让后续模型更关注之前预测错误的样本,从而提升整体分类能力。

要不要我帮你整理一份带完整数值的计算步骤清单,让你可以直接照着算?

相关推荐
YangYang9YangYan几秒前
2026经济学专业学习数据分析的价值分析
学习·数据挖掘·数据分析
想唱rap12 分钟前
应用层协议与序列化
linux·运维·服务器·网络·数据结构·c++·算法
重生之我是Java开发战士18 分钟前
【笔试强训】Week3:重排字符串,分组,DNA序列
算法
We་ct20 分钟前
LeetCode 97. 交错字符串:动态规划详解
前端·算法·leetcode·typescript·动态规划
热心网友俣先生24 分钟前
2026年第二十三届五一数学建模竞赛B题四问参考答案+多算法对比
算法·数学建模
red_redemption24 分钟前
自由学习记录(176)
学习
无敌昊哥战神24 分钟前
【LeetCode 37】解数独 (Sudoku Solver) —— 回溯法详解 (Python/C/C++)
c语言·c++·python·算法·leetcode
风筝在晴天搁浅31 分钟前
LeetCode 162.寻找峰值
算法·leetcode
hello_读书就是赚钱33 分钟前
提示词工程学习笔记
笔记·学习
itzixiao1 小时前
L1-067 洛希极限(10分)[java][python]
java·开发语言·算法