请帮助解释SPADE频繁序列挖掘算法(http://www.inside-r.org/packages/cran/arulesSequences/docs/cspade)
的结果支持= 0.05:
s1 <- cspade(x, parameter = list(support = 0.05), control = list(verbose = TRUE))
例如,我得到了这些序列:
4 <{C},{V}> 0.15644023
5 <{C,V}> 0.73127376
看起来这些是相同的序列,不是吗?如何&lt; {C},{V}&gt;语义差异来自&lt; {C,V}&gt; ?任何现实生活中的例子?
来自Spade论文(M. J. Zaki。(2001).SPADE:一种高效的挖掘频繁序列算法。机器学习期刊,42,31--60):
“如果A是a,则称输入序列C包含另一个序列A. 输入序列C的子序列。序列的支持或频率是数据库D中包含A的输入序列的总数。“
然后,例如,如果:
sequence support
1 <{C}> 1.00000000
这是否意味着序列&lt; {C}&gt;包含在数据库D中的所有序列中,对吗?
我从数据中获得的完整输出:
> as(s1, "data.frame")
sequence support
1 <{C}> 1.00000000
2 <{L}> 0.20468120
3 <{V}> 0.73127376
4 <{C},{V}> 0.15644023
5 <{C,V}> 0.73127376
6 <{L,V}> 0.07882027
7 <{V},{V}> 0.13343431
8 <{C,V},{V}> 0.13343431
9 <{C},{C},{V}> 0.05558572
10 <{C,L,V}> 0.07882027
11 <{V},{C,V}> 0.13343431
12 <{C},{C,V}> 0.15644023
13 <{C,V},{C,V}> 0.13343431
14 <{C},{C},{C,V}> 0.05558572
15 <{C},{L}> 0.05738619
16 <{C,L}> 0.20468120
17 <{C},{C,L}> 0.05738619
18 <{C},{C}> 0.22128547
19 <{L},{C}> 0.06233031
20 <{V},{C}> 0.16921494
21 <{V},{V},{C}> 0.05047012
22 <{V},{C},{C}> 0.06233031
23 <{C,V},{C}> 0.16921494
24 <{C},{V},{C}> 0.05781487
25 <{C,V},{V},{C}> 0.05047012
26 <{V},{C,V},{C}> 0.05047012
27 <{C},{C,V},{C}> 0.05781487
28 <{C,V},{C,V},{C}> 0.05047012
29 <{C,L},{C}> 0.06233031
30 <{C},{C},{C}> 0.07882027
31 <{C,V},{C},{C}> 0.06233031
> summary(s1)
set of 31 sequences with
most frequent items:
C V L (Other)
27 22 8 8
most frequent elements:
{C} {V} {C,V} {L} {C,L} (Other)
21 12 12 3 3 2
element (sequence) size distribution:
sizes
1 2 3
7 13 11
sequence length distribution:
lengths
1 2 3 4 5
3 9 12 6 1
summary of quality measures:
support
Min. :0.05047
1st Qu.:0.05760
Median :0.07882
Mean :0.17121
3rd Qu.:0.16283
Max. :1.00000
includes transaction ID lists: FALSE
mining info:
data ntransactions nsequences support
x 61000 34991 0.05
>
答案 0 :(得分:1)
使用SPADE算法时,请记住您还处理时态数据(即您可以知道项目发生的顺序或时间)。
看起来这些是相同的序列,不是吗?如何&lt; {C},{V}&gt; 语义上不同于&lt; {C,V}&gt; ?任何现实生活中的例子?
在您的示例中,&lt; {C},{V}&gt;表示项目C首先出现,然后出现项目V; &lt; {C,V}&gt;表示项目C和V同时发生。
然后,例如,如果:
sequence support 1 <{C}> 1.00000000
这是否意味着序列&lt; {C}&gt;包含在所有序列中 数据库D,对吗?
支持值为1的项目表示在所有交易中发生(在市场购物篮分析示例中)。
希望这有帮助。
答案 1 :(得分:1)
看起来这些是相同的序列,不是吗?如何&lt; {C},{V}&gt; 语义差异来自&lt; {C,V}&gt; ?任何现实生活中的例子?
正如用户2552108指出的那样,{C,V}意味着C和V同时发生。实际上,这可以用于编码多维顺序数据。例如,假设C是加拿大,V是温哥华。现在这可能是这样的:
[{C,V,M,花生,黄油,maple_syrup},...,{}]
在这种情况下,您的频繁项目集不仅可以具有单个长度集合,例如{C},{V},{U},{W}或{X},还可以设置长度为&gt; 1(同时出现的集合 - 同时)。
出于这个原因,事务/序列中的元素被定义为集合而不是单个元素。
这是否意味着序列&lt; {C}&gt;包含在所有序列中 数据库D,对吗?
这是对的!