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


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

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

相关推荐
黎阳之光19 小时前
黎阳之光:视频孪生领跑者,铸就中国数字科技全球竞争力
大数据·人工智能·算法·安全·数字孪生
skywalker_1119 小时前
力扣hot100-3(最长连续序列),4(移动零)
数据结构·算法·leetcode
6Hzlia19 小时前
【Hot 100 刷题计划】 LeetCode 17. 电话号码的字母组合 | C++ 回溯算法经典模板
c++·算法·leetcode
_李小白20 小时前
【OSG学习笔记】Day 38: TextureVisitor(纹理访问器)
android·笔记·学习
wfbcg20 小时前
每日算法练习:LeetCode 209. 长度最小的子数组 ✅
算法·leetcode·职场和发展
_日拱一卒20 小时前
LeetCode:除了自身以外数组的乘积
数据结构·算法·leetcode
计算机安禾20 小时前
【数据结构与算法】第36篇:排序大总结:稳定性、时间复杂度与适用场景
c语言·数据结构·c++·算法·链表·线性回归·visual studio
SatVision炼金士20 小时前
合成孔径雷达干涉测量(InSAR)沉降监测算法体系
算法
杨云龙UP20 小时前
从0到1快速学会Linux操作系统(基础),这一篇就够了!
linux·运维·服务器·学习·ubuntu·centos·ssh
wuweijianlove20 小时前
算法稳定性与数值误差传播研究的技术2
算法