序列挖掘演算法比較
AprioriAll + GSP + FreeSpan + PrefixSpan
1.基本概念
AprioriAll演算法屬於Apriori類演算法,其基本思想為首先遍歷序列資料庫生成候選序列並利用Apriori性質進行剪枝得到頻繁序列。
GSP(generalized sequential pattern)演算法是AprioriAll演算法的擴充套件演算法,不同在於GSP引入了時間約束、滑動時間窗和分類層次技術,有效地減少了需要掃描的候選序列的數量。
FreeSpan演算法是基於模式投影的序列挖掘演算法,其基本思想:利用當前挖掘的頻繁序列集將序列資料庫遞迴地投影到一組更小的投影資料庫上,分別在每個投影資料庫上增長子序列。
PrefixSpan是FreeSpan的改進演算法,即通過字首投影挖掘序列模式。
2. 演算法的定性比較
屬性 |
Apriori類演算法 |
模式增長演算法 |
||
AprioriAll |
GSP |
FreeSpan |
PrefixSpan |
|
候選序列 |
產生 |
產生 |
不產生 |
不產生 |
資料結構 |
Hash樹 |
Hash樹 |
Hash樹 |
WAP樹 |
資料庫分割 |
否 |
否 |
是 |
是 |
資料庫的掃描次數 |
反覆多次 |
反覆多次 |
3次 |
2次 |
演算法執行 |
迴圈 |
迴圈 |
遞迴 |
遞迴 |
3. 演算法的時空執行效率比較
Apriori All演算法 |
這兩種演算法都屬於Apriori類演算法,都要產生大量的候選序列,需要有足夠的存貯空間。同時還需要反覆掃描資料庫,需要佔用很多執行時間。該類演算法的執行效率比較低,特別是在支援度比較低的情況下,其執行效率將會大大下降。和AprioriAll相比,GSP的執行效率比較高,總體來說要比AprioriAll高2~20倍。 |
GSP演算法 |
|
FreeSpan演算法 |
這兩種演算法都屬於模式增長演算法,它們的查詢更加集中和有效。由於該類演算法不生成大量的候選序列以及不需要反覆掃描原資料庫,和Apriori類演算法相比該類演算法要快且更有效,特別是在支援度比較低的情況下更明顯。此外,在時空的執行效率上,PrefixSpan比FreeSpan更優。 |
PrefixSpan演算法 |
4. 演算法的適用範圍分析
Apriori類演算法在稀疏資料集的應用中比較合適,不適合稠密資料集的應用。對於有約束條件(例如相鄰事務的時間間隔約束)序列模式挖掘,GSP更適用。
FreeSpan和PrefixSpan在兩種資料集中都適用,而且在稠密資料集中它們的優勢更加明顯。兩者相比,PrefixSpan的效能更好一些。
在實際應用中,在挖掘過程的不同階段,資料集的特點,資料規模等因素可能不同,如果根據各階段的特點,選擇與之相應的演算法,則序列模式挖掘能達到更好的效果。