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


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 算法的核心,目的是让后续模型更关注之前预测错误的样本,从而提升整体分类能力。

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

相关推荐
苏打豆30 分钟前
CRISP源码阅读——基于ROS2力矩反馈控制器与速度加速度零空间
c++·线性代数·算法·矩阵·机器人
蛋蛋的就会顺顺的1 小时前
hot100——矩阵
java·数据结构·算法·leetcode·力扣
老歌老听老掉牙1 小时前
麻花钻切屑形态演变的力学机制与临界条件分析
python·算法·钻头
每天题库1 小时前
架子工脚手架工题库:安全操作考点与模拟题练习指南
学习·安全·考试·题库·考证
zhangfeng11332 小时前
国产GPU/AI算力芯片现状(修订完整版 · 截至2026年9月
人工智能·算法·ai编程·npu
yangmu32032 小时前
Codex 提示词优化教程:用四要素把模糊需求变成可执行任务
人工智能·学习
学代码的CJY2 小时前
从代码出发理解时间复杂度与空间复杂度
数据结构·算法
白帽攻防录2 小时前
SRC 挖洞:WSO2 JWT 算法混淆绕过深度复盘,CVE-2026-5430 不支持的算法怎么变成管理员
网络·算法·安全·网络安全·jwt
无敌贵点大王3 小时前
RTThread学习记录13——关于要使用一个外设,RTThread与cubemx到底要怎么配合?
c语言·stm32·学习·rtthread
小O的算法实验室3 小时前
IEEE TEVC,基于精确与DQN群智能调度方法用于多目标异构USV
算法