确定权重的方式——半衰期与指数衰减法

1. 半衰期与时间窗口

  在加权计算当中,例如回归模型,当需要确定权重时,对于时间序列数据,由于时间远近不同,影响程度不同,因此要对不同时间的数据赋予不同权重。
  指数衰减法是常用的确定权重的方法。在进行权重计算时,要给定数据所来自的时间段,即时间窗口,以及半衰期,即权重衰减到一半所需要的时间。例如,选择252天作为时间窗口,63天作为半衰期,则当前为 t t t天,第 t − 63 t-63 t63天的权重为0.5,并且距离 t t t越远,权重越小。

2. 指数衰减法确定权重

2.1 指数衰减公式

指数衰减的公式为:
w i = e − λ ⋅ i w_i = e^{-\lambda \cdot i} wi=eλi
其中 w i w_i wi是第 i i i个数据点的权重, λ \lambda λ 是衰减系数, i i i 是时间间隔。

2.2 衰减系数与半衰期的关系

我们希望在半衰期 h h h之后,权重减为原来的一半,即:
w h = e − λ ⋅ h = 1 2 w_h = e^{-\lambda \cdot h} = \frac{1}{2} wh=eλh=21

对该公式取对数:
− λ ⋅ h = ln ⁡ ( 1 2 ) -\lambda \cdot h = \ln\left(\frac{1}{2}\right) λh=ln(21)
由于 ln ⁡ ( 1 2 ) = − ln ⁡ ( 2 ) \ln\left(\frac{1}{2}\right) = -\ln(2) ln(21)=ln(2),可以得到:
− λ ⋅ h = − ln ⁡ ( 2 ) -\lambda \cdot h = -\ln(2) λh=ln(2)

将负号消去,得到衰减系数:
λ = ln ⁡ ( 2 ) h \lambda = \frac{\ln(2)}{h} λ=hln(2)

2.3 权重的计算

知道了衰减系数 λ \lambda λ后,可以使用指数衰减公式计算每个时间点的权重:

w i = e − λ ⋅ i w_i = e^{-\lambda \cdot i} wi=eλi

并对权重进行归一化,使其总和为 1。即 w i ′ = w i / ∑ i = 1 n w i w_i ^ {'} = w_i / \sum_{i=1}^{n} w_i wi=wi/i=1nwi

3. 代码实现

import numpy as np

def half_decay_weight(h, window):
    lamda = np.log(2) / h
    weight = np.exp(-lamda * range(window))
	return weight / np.sum(weight)

  此时返回值就是权重数组了。

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书江南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值