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


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

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

相关推荐
lzhdim1 小时前
AI的分类
人工智能·算法·机器学习·分类·数据挖掘
凤凰院凶涛QAQ4 小时前
《Java版数据结构 & 集合类剖析》Map & Set & 反射:“从哈希碰撞到红黑树转换,反射帮你扒开 HashMap 的桶数组看个究竟”
java·数据结构·算法
w_zero_one6 小时前
算法--模拟
java·数据结构·算法
外收内放6 小时前
面向对象高级(实战案例)
开发语言·python·学习
秋天的怀念_David6 小时前
算法一千零一夜 · 第十三夜 幻方,武侠世界里的数学迷宫
java·程序人生·算法
秋天的怀念_David7 小时前
算法一千零一夜 · 第十四夜 幻方与奇妙的二进制
java·程序人生·算法
薛定e的猫咪7 小时前
(ICLR 2020)MAML 靠的不是快速学习,而是特征复用
人工智能·深度学习·学习·算法·机器学习
薛定e的猫咪7 小时前
(ICLR 2026)DF-META:面向 FJSP 的无导数元学习实例自适应调度
人工智能·深度学习·学习·算法·机器学习
小羊没烦恼!9 小时前
异步编程:线程概述及使用
java·开发语言·mysql·算法·c#
wanderist.9 小时前
202609CSP认证P3
算法