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


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

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

相关推荐
爱理财的程序媛1 小时前
openclaw 盯盘实践
算法
MobotStone4 小时前
Google发布Nano Banana 2:更快更便宜,图片生成能力全面升级
算法
颜酱8 小时前
队列练习系列:从基础到进阶的完整实现
javascript·后端·算法
用户5757303346248 小时前
两数之和:从 JSON 对象到 Map,大厂面试官到底在考察什么?
算法
程序猿追8 小时前
“马”上行动:手把手教你基于灵珠平台打造春节“全能数字管家”
算法
西岸行者1 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
ZPC82101 天前
docker 镜像备份
人工智能·算法·fpga开发·机器人
ZPC82101 天前
docker 使用GUI ROS2
人工智能·算法·fpga开发·机器人
琢磨先生David1 天前
Day1:基础入门·两数之和(LeetCode 1)
数据结构·算法·leetcode
颜酱1 天前
栈的经典应用:从基础到进阶,解决LeetCode高频栈类问题
javascript·后端·算法