半衰期的计算我们按照公式来,比如半衰期N,则距离当前时间点过去K个时间点后,当前值变为
( 0. 5 1 N ) 1 K (0.5^{\frac{1}{N} } ) ^ {\frac{1}{K}} (0.5N1)K1
在python中的计算方式为:
( 0.5 ** (1 / N) ) ** K
工具函数
1. 当前值在未来N个时间点后的权重值
def half_factor_weight(num, half_factor):
"""计算半衰期
:param num: 返回的时间段
:param half_factor: 半衰期因子值
"""
half_formula = 0.5 ** (1 / half_factor)
value_list = []
for i in range(num):
value_list.append(half_formula ** i)
return np.array([half_formula ** _ for _ in range(num)])
print(half_factor_weight(10, half_factor=5))
此时返回的结果是:
[1. 0.87055056 0.75785828 0.65975396 0.57434918 0.5
0.43527528 0.37892914 0.32987698 0.28717459]
2. 过去N个时间段的值对现在影响的权重值
def half_factor_weight(num, half_factor):
"""计算半衰期
:param num: 返回的时间段
:param half_factor: 半衰期因子值
"""
half_formula = 0.5 ** (1 / half_factor)
value_list = []
for i in range(num):
value_list.append(half_formula ** i)
return np.flip(np.array([half_formula ** _ for _ in range(num)]))
print(half_factor_weight(10, half_factor=5))
此时返回的结果是:
[0.28717459 0.32987698 0.37892914 0.43527528 0.5 0.57434918
0.65975396 0.75785828 0.87055056 1. ]