如何找到从给定数据集中的序列获得的子序列的概率?

时间:2019-03-22 12:22:20

标签: python pandas probability data-mining clickstream

我有一个链接序列的数据集(CSV文件),并具有每个序列的订购状态。我借助prefixSpan算法(如here所述)获得了带有子序列数的子序列。 但我也想找出导致每个子序列= 1的概率。假设链接为abcd,其顺序和顺序状态在数据框中如下所示:

   Link sequences   Order status
    a,b,c,a,c,c                 0
    a,c,b,c                       1
    a,b,d,c,b,c                 1
    a,c,b,c                       0

如果我在prefixSpan算法的帮助下将最小Support = 4得到的子序列

    Subsequences            Support
     [a]                                    4
     [a,b]                                 4
     [a,b,c]                              4
     [a,c]                                 4
     [a,c,c]                              4
     [b]                                   4
     [b,c]                                4
     [c]                                   4
     [c,c]                                4

我应该对上述链接中提到的prefixSpan算法代码进行哪些更改,以获得概率如下:

Subsequence   Support     Prob
 [a]                          4             0.5
 [a,b]                       4             0.5
 [a,b,c]                    4             0.5
 [a,c]                       4             0.5
 [a,c,c]                    4             0.5
 [b]                          4             0.5
 [b,c]                       4             0.5
 [c]                          4             0.5
 [c,c]                       4             0.5

用于计算子序列概率的过程是:

添加所有存在该子序列的序列的下订单状态,并将其除以存在该序列的序列数,例如:

P(subsequence [a,c,c]) =( 0+1+1+0)/4 = 0.5

0 个答案:

没有答案