降级数据的算法

时间:2014-02-04 18:02:05

标签: algorithm

我有一个包含A,B,C等数据类型的数据库

我正在寻找的是一种算法,在某些时候 t 告诉我们数据类型的知名程度。

例如,如果数据库如下:

Type | t |
-----+---+
  A  | 0 
  B  | 1
  A  | 2
  A  | 3
  C  | 4
...  | ...
Let's say that B doesn't appear anymore and A appears a lot.

t = 100 的算法会为B返回一个非常小的值,因为B只发生在 t = 1 中,但是自A发生以来A的值很大很多。但是如果在 t = 100 B之后出现了很多,那么在 t = 150 中算法会为B返回一个大的值。在同样意义上,如果在之后t = 100 A永远不会出现算法会为A返回一个较小的值,但不会那么小,因为它在 t = 100 之前出现了很多。

我相信我正在寻找某种降级算法或类似的东西。如果有人对我应该寻找什么样的算法有任何想法,我会非常高兴!

对不起,如果我想要的不是很清楚,我可以稍后再尝试解释。

谢谢!

(对不起我的英文)

1 个答案:

答案 0 :(得分:0)

如果您想要某种“最近使用过的”指标,您可以使用每种指数的指数平均值。即,开始a(0) = b(0) = c(0) = d(0) = 0,然后每次看到A时:

a(t) = p * 1 + (1 - p) * a(t - 1)
b(t) =         (1 - p) * b(t - 1)
c(t) =         (1 - p) * c(t - 1)
d(t) =         (1 - p) * d(t - 1)

和其他人一样。这里0 <= p <= 1。最近出现的p值较高,较低的值有利于历史记录。

我相信你可以沿着那些适合你用途的东西做点什么。