基本的序列模式挖掘:主要包括一些經典算法,分為以下三類。
-
1)基於Apriori特性的算法:Apriori(['eɪprɑɪ'ɔ:rɪ])算法、AprioriSome算法、AprioriAll算法、DynamicSome算法等等
2)基於垂直格子的算法:SPADE算法
3)增量式序列模式挖掘:用來研究當序列增加時,如何維護序列模式,提高數據挖掘效率的問題,典型算法有:ISM算法、ISE算法、IUS算法。
4)多維序列模式挖掘:它是將多維有價值的信息融合到單位序列中,進而挖掘出最優價值的信息。典型算法有三種Uni-Seq、Seq-Dim,Dim-Seq。
5)基於約束的序列模式挖掘:目前的序列模式挖掘算法產生了大量的無用信息或者冗余信息,降低了挖掘的效率,因此提出了約束序列模式挖掘,通過添加約束條件,挖掘用戶最感興趣、最優價值的序列模式。
序列模式挖掘的發展方向:並行序列模式挖掘、周期序列模式挖掘、分布式序列模式挖掘、圖序列模式挖掘
-
需要解決的問題:
1)如何進一步提高挖掘海量數據的效率?
2)如何結合相關領域知識來解決實際問題?
3)進一步改進算方法,並將應用大數據挖掘很重。
大數據挖掘研究主要集中采用以下幾種方式:
-
基於內存數據分解的方式:隨着數據集越來越大,計算機無法一次性地將大數據集讀入內存,數據分解結束由此而生,數據分解技術采用分而治之的思想,將大數據集分割成一塊塊小數據集讀入內存,然后進行挖掘,最后合並挖掘結果,大大提高了挖掘效率
-
基於磁盤存儲的方式:由於內存空間較小,不能整體地將大數據集進行處理,因此需要將一部分數據存放在磁盤上,這樣能夠有更多的內存空間來處理后面的數據。
-
基於采樣的方式,采樣方法是統計學經常采用的技術,我們可以從大規模數據集中抽取出能夠反映大數據集的樣本,然后對大數據集樣本進行挖掘。
序列模式挖掘概念:
-
序列模式挖掘是指從序列數據庫中尋找頻繁子序列作為模式的知識發現過程,即輸入一個序列數據庫,輸出所有不小於最小支持度的序列的過程。它有廣泛的應用領域:預測用戶購買行為、預測Web訪問模式、預測天氣變化、預測時長趨勢。
-
序列模式挖掘和關聯規則挖掘的區別
序列模式是找出序列數據庫中數據之間的先后順序。比如:用戶訪問某個網站各個網頁的順序,關聯規則是找出事務數據庫中數據之間的並發關系。比如:啤酒喝尿布。關聯規則挖掘不關注事務之間的先后順序,序列模式挖掘需要考慮序列間的先后順序。
序列模式挖掘經典算法
-
AprioriAll算法
-
基本思想:每當掃描數據庫時,計算上一次掃描生成的候選序列的support,如果support不小於min_sup,就將其當做大序列
-
算法描述
-
排序階段,主要是根據交易時間和ID進行排序
-
頻繁項目集挖掘階段,執行一次Apriori算法,找到所有support不小於min_sup的頻繁項目集,這個階段主要是為下一步的轉換做鋪墊工作
-
轉化階段,根據上一步產生的頻繁項集,掃描交易序列數據,根據MAP映射得到新的序列項集
-
序列階段,根據上一步得到的新序列項集,再次執行Apriori算法,找到新的頻繁項集
-
最大化序列階段,從挖掘的新的頻繁序項集中,找出長度最長的序列模式
-
-
算法分析:
-
AprioriAll算法是對Apriori算法的進一步改進,主要區別是在產生候選項集和頻繁序列模式方面需要考慮序列元素的順序。
-
存在的問題:
-
容易生成大量的候選項集
-
需要對數據庫進行多次掃描
-
很難找到長序列模式
-
在轉換階段產生巨大的開銷
-
-
GSP 算法
GSP算法基於 Apriori 理論,首先產生較短的候選項集,然后將短候選項集進行剪枝,接着通過連接生成長候選序列模式,最后計算其支持度。
-
基本思想:GSP 算法有兩個方面的改進:第一,對冗余候選模式進行剪枝。第二,采用哈希樹來存儲候選模式。
-
算法描述
-
除此掃描序列數據庫,得到所有長度為1的序列即為F1,作為種子集,
-
對長度為i的種子集Fi進行連接和剪枝,生成長度為i+1的候選序列
;再次掃描序列數據庫,統計每個候選序列support,然后產生長度為i+1的序列
,並將
作為新種子集
-
重復(b),直到找到所有的序列模式為止

-
-
存在的問題:
-
當序列數據庫比較大時,容易生成龐大的候選序列
-
需要對序列數據庫進行多次掃描
-
對長序列模式的處理效率比較低
-
-
FreeSpan算法
-
基本思想
該算法基於分而治之的思想,將原始數據集進行划分,同時在分割的過程中動態地進行序列模式挖掘,並將產生的序列模式作為新的划分集。
-
算法描述
-
掃描序列數據庫S,找到S中的所有的長度為1的頻繁項集,並且按照字母表的順序生成f_list列表
-
按照f_list列表將序列數據庫划分成若干個子集
-
首次掃描序列數據庫S,找到所有的頻繁項然后與前一項連接組成候選序列 ,計算該候選序列在序列數據庫中的支持度,對於support小於min_sup的項進行剪枝
-
遞歸的挖掘長度更長的序列,直到挖掘出所有長度的頻繁序列
-
-
算法分析
從性能上分析,FreeSpan算法要由於類Apriori算法,它不僅能夠高效的挖掘到所有長度的頻繁序列,而且能夠大大減少候選項集的數量
-
存在的問題
在挖掘過程中會產生大量的投影數據庫,而且投影數據庫一般不會縮減,另外,候選序列很多,需要考慮每一個的候選序列的組合情況
-
-
PrefixSpan算法
-
基本思想
采用分而治之的思想,首先掃描序列數據庫,找到所有長度為1的序列模式,把這些序列模式作為前綴,將序列數據庫划分為多個小投影數據庫,然后在各個投影數據庫上進行遞歸的序列模式挖掘,效果如圖所示,首先有一個序列數據庫S,根據前綴划分,產生多個投影數據庫
,然后分別在這多個投影數據庫中進行遞歸的挖掘,直到找到所有的頻繁序列模式為止。 
-
算法描述
-
首次掃描序列數據庫,找到長度為1的所有頻繁序列;、
-
按照(a)中得到頻繁序列划分為n個不同前綴;
-
根據n個不同的前綴,構造相應的投影數據庫,並遞歸的挖掘頻繁序列的子集,直到不能產生長度為1的頻繁序列模式為止
-
-
PrefixSpan算法存在的問題
盡管PrefixSpan算法能夠提升挖掘的效率,但該算法仍存在一些不足,第一:該算法需要構造大量的投影數據庫,並且構造投影數據庫的開銷較大;第二,該算法需要遞歸的掃描投影數據庫,耗費大量的時空代價,同時也大大降低了算法的挖掘效率;第三,該算法挖掘出的頻繁序列模式,都是按照字典序進行排列,不能滿足實際的需求。
-
-
經典算法的比較分析
(1)算法基本特性分析
下表列出了四種算法在候選序列、存儲結構、數據庫縮減、掃描次數、算法執行方面的對比

(2)執行效率分析
Apriori All 算法會產生大量的候選項集,尤其是當挖掘頻繁序列長度增加時,產生
的候選項集呈現指數式增長,因此需要消耗大量的存儲空間。此外還需要掃描投影數
據庫,也需要消耗大量的掃描時間。盡管 GSP算法和Apriori All算法都屬於Apriori類,但是GSP算法能夠在一定程度上減少候選序列的數量,因此總體效率比Apriori All算法高很多。Free Span算法是基於模式增長的算法,不會產生大量的候選項集,並且每一次僅僅掃描投影數據庫,而不是掃描原數據庫的候選序列,比類 Apriori 的算法效率要高的多,尤其在支持度較低時更為明顯。Free Span 的缺點有兩個方面:(1)在挖掘的過程中會產生大量的投影數據庫。(2)產生的候選序列很多,需要考慮每一個候選序列的組合情況,因此造成了很大的開銷。Prefixspan算法是對Free Span算法的改進,不會產生候選序列模式,另外Prefix Span算法也需要構造大量的投影數據庫,造成較大的開銷但Prefix Span算法比Free Span算法的收縮速度快,它能夠大大縮減搜索空間,縮小投影數據庫的規模。
