我有一个包含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 之前出现了很多。
我相信我正在寻找某种降级算法或类似的东西。如果有人对我应该寻找什么样的算法有任何想法,我会非常高兴!
对不起,如果我想要的不是很清楚,我可以稍后再尝试解释。
谢谢!
(对不起我的英文)
答案 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
值较高,较低的值有利于历史记录。
我相信你可以沿着那些适合你用途的东西做点什么。