您可以使用以下内容。据我所知,SPADE 对多个序列也使用了类似的东西。
36127389722027284897241032720389720
首先,您需要收集序列中每个项目的位置。
长度:1
{
0: [11,23,28,34], //4
1: [2,22], //2
2: [3,9,10,12,14,20,25,27,33], //9
3: [0,5,24,29], //4
4: [16,21], //2
5: [], //0
6: [1], //1
7: [4,8,13,19,26,32], //6
8: [6,15,17,30], //4
9: [7,18,31] //3
}
然后根据您为频繁序列选择的最小支持检查这些项目的支持。
min_sup: 3
{
0: [11,23,28,34], //4
2: [3,9,10,12,14,20,25,27,33], //9
3: [0,5,24,29], //4
7: [4,8,13,19,26,32], //6
8: [6,15,17,30], //4
9: [7,18,31] //3
}
在您的情况下,您需要找到具有连续位置的项目。您也可以使用通配符,但在这种情况下,位置差异将超过 1,您会发现更多的候选人。
长度:2
{
00: [], //0
02: [[11,12]], //1
03: [[23,24],[28,29]], //2
07: [], //0
08: [], //0
09: [], //0
20: [[33,34]], //1
22: [[9,10]], //1
23: [], //0
27: [[3,4],[12,13],[25,26]], //3
28: [], //0
29: [], //0
30: [], //0
32: [[24,25]], //1
33: [], //0
37: [], //0
38: [[5,6],[29,30]], //2
39: [], //0
70: [], //0
72: [[8,9],[13,14],[19,20],[26,27],[32,33]], //5
73: [[4,5]], //1
77: [], //0
78: [], //0
79: [], //0
80: [], //0
82: [], //0
83: [], //0
87: [], //0
88: [], //0
89: [[6,7],[17,18],[30,31]], //3
90: [], //0
92: [], //0
93: [], //0
97: [[7,8],[18,19],[31,32]], //3
98: [], //0
99: [] //0
}
min_sup: 3
{
27: [[3,4],[12,13],[25,26]], //3
72: [[8,9],[13,14],[19,20],[26,27],[32,33]], //5
89: [[6,7],[17,18],[30,31]], //3
97: [[7,8],[18,19],[31,32]], //3
}
您可以尝试根据结尾组合上面的序列,或者您可以只检查位置。
长度:3
{
272: [[12,13,14],[25,26,27]], //2
727: [], //0
897: [[6,7,8],[17,18,19],[30,31,32]], //3
972: [[7,8,9],[18,19,20],[31,32,33]] //3
}
min_sup: 3
{
897: [[6,7,8],[17,18,19],[30,31,32]], //3
972: [[7,8,9],[18,19,20],[31,32,33]] //3
}
长度:4
{
8972: [[6,7,8,9],[17,18,19,20],[30,31,32,33]] //3
}
min_sup: 3
{
8972: [[6,7,8,9],[17,18,19,20],[30,31,32,33]] //3
}
只有一种模式,不能和自己结合,所以挖矿就完成了。
{
27: [[3,4],[12,13],[25,26]], //3
72: [[8,9],[13,14],[19,20],[26,27],[32,33]], //5
89: [[6,7],[17,18],[30,31]], //3
97: [[7,8],[18,19],[31,32]], //3
897: [[6,7,8],[17,18,19],[30,31,32]], //3
972: [[7,8,9],[18,19,20],[31,32,33]] //3
8972: [[6,7,8,9],[17,18,19,20],[30,31,32,33]] //3
}
如果我们排除 8972 的子模式。
{
27: [[3,4],[12,13],[25,26]], //3
72: [[13,14],[26,27]], //2
8972: [[6,7,8,9],[17,18,19,20],[30,31,32,33]] //3
}
min_sup: 3
{
27: [[3,4],[12,13],[25,26]], //3
8972: [[6,7,8,9],[17,18,19,20],[30,31,32,33]] //3
}
我认为这与您找到的模式相同。
361[27]3[8972]20[27]284[8972]4103[27]203[8972]0
保留 72 的另一种选择,因为它作为 8972 的子序列出现 3 次,另外 2 次独立于 8972。我认为这应该取决于您是否允许重叠。
361[27]3[89(72)]202(72)84[89(72)]4103[2(7]2)03[89(72)]0
注意:我不认为顺序模式挖掘被认为是机器学习。