假设我要计算两个数据点(A和A')的速度,每个数据点都有一个分数,并发布一个时间(A'是A的未来版本,并且得分更高)。这将是
[A'(score) - A(score)] / [A'(time published) - A (time published)]
我要捕捉的是高速趋势。这意味着我希望分数从20上升到200,而权重比8500上升到9000。因此,我想通过将分数除以基线来对数据进行归一化。
例如如果A(分数)为2,而A'(分数)为3,则基线为2,因此在上式中,
A'(score) - A(score) would be (3/2 - 2/2)
但是,这意味着当数字这么低时,速度会非常高(另一方面
9000/8500 - 8500/8500
假定时间差仅在此示例中为常数,但是产生的速度非常低,但是通常时间差是可变的。
是否有任何方法可以降低低起点得分的影响,同时又允许从20到200的跳跃是有意义的?谢谢。
答案 0 :(得分:2)
有两种查看方法。谁都可以给你想要的东西。
我的第一个想法是,您的问题非常接近于提供您的答案。通过将您的第一个计算称为速度-分数随时间的变化率,您给了自己一个重要的提示。然后,您可以查看其加速度-速度随时间的变化率。那是:
(A''(score) - A'(score)) - (A'(score) - A(score))
请注意,我不是按时间划分的,因为您说每次测量的时差是恒定的。然后,您将每个值除以一个常数,这样效率低下,并且可能无法进一步澄清。
不过,您似乎更可能希望从一个分数到另一个分数的变化有多重要。我怀疑您想要的是:
(A'(score) - A(score)) / A(score)
这是(a-b)/ b,减小到(a / b)-1。如果您不关心-1,则可以看到最简单的分数变化方法是:
A'(score)/A(score)
这显示了分数从一个步骤到下一个步骤的增长率。 p>
给出您的评论,可变的时间速率会使逻辑更加复杂,但仍然可行。
在这种情况下,您确实希望像以前那样计算速度:
V = A'(score) - A(score) / A'(time) - A(time)
但是您想根据先前的速度对其进行归一化:
result = V'/V
然后,它变得类似于“加速”示例-它需要3个样本才能很好地了解变化率。如果一路拼写清楚,您会得到类似的东西:
result = (A''(score) - A'(score))/(A''(time) - A'(time)) / (A'(score) - A(score))/(A'(time) - A(time))
您可以做一些数学运算来推算这些数字,但实际上没有比这更漂亮的结果了。