我有一个由 N 个元素组成的列表。就上下文而言,我正在进行时间序列预测,并且 - 一旦做出预测 - 希望对开始时所做的预测进行加权,使其比后来的预测更重要。这很有用,因为当我计算性能错误分数 ( MAPE ) 时,该分数将代表每个项目的预测,以及基于我想要识别好模型和坏模型的方式。
我应该如何更新我现有的函数以获取任何元素列表 (N) 以生成这些稳步下降的权重?
这是我自己提出的功能。它适用于类似的例子compute_equal_perc(5),但不适用于其他组合......
def compute_equal_perc(rng):
perc_allocation = []
equal_perc = 1 / rng
half_rng = rng / 2
step_val = equal_perc / (rng - 1)
print(step_val)
for x in [v for v in range(0, rng)]:
if x == int(half_rng):
perc_allocation.append(equal_perc)
elif x < int(half_rng):
diff_plus = ((abs(int(half_rng) - x) * step_val)) + equal_perc
perc_allocation.append(round(float(diff_plus), 3))
elif x >= int(half_rng):
diff_minus = equal_perc - ((abs(int(half_rng) - x) * step_val))
perc_allocation.append(round(float(diff_minus), 3))
return perc_allocation
对于compute_equal_perc(5),我得到的输出是:
[0.3, 0.25, 0.2, 0.15, 0.1]
此sum序列的 应始终等于 1,并且值之间的增量应始终相等。
qq_花开花谢_0
相关分类