假设“1,2,3”是用户的id,active表示最近一个月访问过stackoverflow的人(0=passive,1=active),有正票和负票之分。
id question votes active
1 1 -1, +1, -1, -1, -1 0
1 2 -1, +1, -1, -1, +1 0
2 1 +1, +1, -1, -1 0
3 1 +1, +1, +1, -1, +1 1
3 2 +1, +1, -1, +1, +1, +1 1
3 3 -1, +1 1
我想知道是什么让用户停止使用 stackoverflow。想一想,我已经计算了他们获得反对票的次数、总票数、每个问题的平均票数……
我想知道我能从这些序列中得到什么样的信息。我想找到这样的东西:这些被动的用户依次有两个反对票。例如,在用户 1 的第二个问题中,在两次反对票之后的一次赞成票并不能防止用户流失。用户 3 在他的任何问题中都没有任何 2 个连续的反对票。因此,他仍然活跃。
我正在寻找类似 PrefixSpan 算法的东西,但顺序对我来说很重要。我的意思是,我不能像这样写序列
<(-1 +1 -1 -1 -1) (-1 +1 -1 -1 +1 )>
或者
<(-1) (+1) (-1) (-1) (-1) (-1) (+1) (-1) (-1) (+1 )>.
因为第一个丢了顺序,第二个把问题混在一起了。是否有任何算法可以找到这些流失者常见的序列?