李迎
(遼寧師范大學 計算機與信息技術(shù)學院,遼寧 大連 116081)
時間序列(Time Series)挖掘是數(shù)據(jù)挖掘中的一個重要研究分支,有著廣泛的應(yīng)用價值。近年來,時間序列挖掘在宏觀的經(jīng)濟預測、市場營銷、客流量分析、太陽黑子數(shù)、月降水量、河流流量、股票價格變動等眾多領(lǐng)域得到了廣泛應(yīng)用[1]。
時間序列的相似性是衡量兩個時間序列相似程度的一個重要指標,它是時間序列聚類、分類、異常發(fā)現(xiàn)等諸多數(shù)據(jù)挖掘的基礎(chǔ),也是研究時間序列挖掘的核心問題之一[2]。歐氏距離 (Euclidean)和動態(tài)時間彎曲距離(Dynamic Time Warping)是計算時間序列相似性時經(jīng)常被采用的兩種度量方式。歐氏距離對時間軸上的輕微變化非常敏感,一些輕微的變化可能使歐氏距離的變化很大,而動態(tài)時間彎曲距離可以有效地消除歐氏距離這個缺陷,動態(tài)時間彎曲可以廣泛應(yīng)用在自然科學、醫(yī)學、企業(yè)和經(jīng)濟等方面[3]。SAX(Symbolic Aggregate Approximation)[4]是一種運用符號化方法對時間序列進行表示、維度約簡及相似性度量的方法。但SAX方法采用PAA算法將時間序列平均劃分,不能很好地計算序列之間的相似度。而利用均分點和關(guān)鍵點對序列進行分段,既考慮了序列本身概率分布的變化,又兼顧到序列形態(tài)的變化。
本文提出一種基于DTW的符號化時間序列聚類算法,在提取關(guān)鍵點之后,再進行符號化時間序列,以達到降維的目的。降維之后得到的符號序列為不等長序列,采用動態(tài)時間彎曲距離 (DTW)方法進行計算,魯棒性好。然后通過DTW得到的距離矩陣構(gòu)建復雜網(wǎng)絡(luò),并尋找其社團結(jié)構(gòu),實現(xiàn)了符號時間序列聚類。本文用DTW方法進行相似性度量比KPDIST[4]在聚類結(jié)果的準確率上有較好大提高。
基于參考文獻[5]可知,時間序列中的極值點 EP成為關(guān)鍵點KP的條件為:
條件1.xi保持極值的時間段與該序列長度的比值必須大于某個閾值C;
條件2.若條件1不滿足,則包含xi的最小序列模式<xi-1,xi,xi+1>中,三點連線形成的夾角小于篩選角度α0。
動態(tài)時間彎曲方法公式如下[3]:
將一個時間序列作為一個節(jié)點,如果兩個時間序列間的相似度大于給定的閾值,則認為這兩個節(jié)點有邊相連,否則它們之間就沒有邊。這樣就構(gòu)造了時間序列間的一個復雜網(wǎng)絡(luò)G。對于網(wǎng)絡(luò)G,有其鄰接矩陣A。利用基于Normal矩陣的譜平分方法可以實現(xiàn)復雜網(wǎng)絡(luò)的社團劃分。
輸 入 :時 間 序 列 X=<(t1,x1),…(ti,xi),…,(tn,xn)>(0<i<n)篩選夾角 α0,預設(shè)數(shù)據(jù)壓縮率p;
輸出:關(guān)鍵點集合 KPS=<KP1,…,KPi,…,KPn>
(1)根據(jù)推論 1,由 p計算系數(shù)x;
(2)初 始 化 ,KP1=x1,xN,x2N,… ,xωN,ω 是 均 分 段 數(shù) ,N 是每個平均分段內(nèi)數(shù)據(jù)的個數(shù);
(3)從KP1=x1開始判斷時間序列的單調(diào)性,獲得包含 3個極值點 xi-p,xi,xi+q的局部時間序列 X=<xi-p,…,xi-1,xi,xi+1,…,xi+q>,待考察的極值點為 xi,包含該點的最短時間序列為<xi-1,xi,xi+1>;
(4)計算max(|xi-xi-1|,|xi-xi+1|),假設(shè)返回|xi-xi+1|;
(7)將點 xi并入集合 KPS,更新區(qū)間[u-xσ,u+xσ]; 返回(1),對下一極值點進行判斷。
輸入:時間序列集。
輸出:聚類結(jié)果。
(1)對每個序列,運用上面的算法得到最終的關(guān)鍵點序列;
(2)計算序列C在各區(qū)間[KPci,KPcj)內(nèi)的均值,并表示為符號序列;
(3)對序列C和序列Q的符號序列進行相似性距離計算(DTW計算和KPDIST計算);
(4)根據(jù)相似度,構(gòu)建復雜網(wǎng)絡(luò)G;此處要給相似度賦予一個閾值,相似性小于閾值的點則認為無邊連接。
(5)用Normal矩陣方法FCM算法對復雜網(wǎng)絡(luò) G進行社團劃分,得到聚類結(jié)果。
本文實驗采用Keogh博士的Synthetic Control和ECG數(shù)據(jù)集。實驗環(huán)境為2.66 GHz CPU Pentium?4 PC機,1 GB內(nèi)存,操作系統(tǒng)為Windows XP Professional。算法實現(xiàn)軟環(huán)境為 matlab 7.0和VC++6.0。Synthetic Control數(shù)據(jù)集的實驗數(shù)據(jù)為300條,每條時間序列長度為60。ECG數(shù)據(jù)集有100個樣本序列,每條時間序列長度為96(http://www.cs.ucr.edu/~eamonn/time_series_data/)。 原 時間序列維度為60和96,經(jīng)過關(guān)鍵點提取、符號化之后,維度大大降低,這為后期處理帶來了很大的方便。 在本實驗中,關(guān)鍵點提取時篩選角度為45°,預設(shè)的壓縮率為80%,劃分了4個區(qū)間段,用符號表示時為a,b,c,d四種字母。由于實驗數(shù)據(jù)的樣本個數(shù)很多,這里只顯示synthetic control的部分實驗結(jié)果。表1為降維后的前4個符號序列實驗結(jié)果。
表1 Synthetic Control序列1-4 KP_SAX字符串結(jié)果
表2為Normal矩陣得到的非平凡特征值對應(yīng)的非平凡特征向量,根據(jù)譜平分算法思想,同一社團內(nèi)的節(jié)點相應(yīng)的元素xi非常接近。從特征向量的分析中可以看出,將DTW與復雜網(wǎng)絡(luò)知識應(yīng)用在符號化時間序列上是一種較好的創(chuàng)新。
由DTW距離矩陣得到的網(wǎng)絡(luò)中,第一非平凡特征值取值為:0.252 9,而通過KPDIST距離矩陣得到的復雜網(wǎng)絡(luò)中,第一非平凡特征值取值為:0.125 7,從特征值中就可以初步判斷,DTW得到的特征值更為準確,這兩個特征值對應(yīng)的特征向量的區(qū)間表如表2所示。
表2 synthetic control的特征向量分布表
表3為兩種算法對同樣數(shù)據(jù)集進行聚類得到的結(jié)果。數(shù)據(jù)集Synthetic control采用本文方法正確率為76.3%。而利用KPDIST算法正確率為69%;數(shù)據(jù)集ECG,本文的正確率為72%,KPDIST的正確率為65%。
表3 聚類結(jié)果
SAX是一種符號化的時間序列相似性度量方法,該方法在對時間序列劃分時,采用了PAA算法的均值劃分,得出的結(jié)果不能精確地表示出原時間序列,故將關(guān)鍵點提取方法與PAA方法相結(jié)合,在對原序列降維的同時又能更準確地表示原時間序列。本文將復雜網(wǎng)絡(luò)知識和時間序列降維方法相結(jié)合,給出了一種時間序列的聚類方法。該算法用DTW算法計算時間序列間的相似度,而后從時間序列的相似度得到一個復雜網(wǎng)絡(luò),此復雜網(wǎng)絡(luò)表示了時間序列相互間的關(guān)系。最后采用Normal矩陣的方法進行網(wǎng)絡(luò)劃分,得到一個網(wǎng)絡(luò)的社團結(jié)構(gòu)。從這個社團結(jié)構(gòu)中已能看出樣本時間序列的歸屬類別,但為了結(jié)果更加清晰,用具體數(shù)字來體現(xiàn),所以采用了FCM聚類算法進行最后的聚類。實驗結(jié)果表明,用DTW方法計算序列之間的相似度結(jié)合在降維后的符號化時間序列上比原文KPDIST方法在準確率上有較好大提高。
[1]毛國君,段立娟,王實,等.數(shù)據(jù)挖掘原理與算法(第二版)[M].北京:清華大學出版社,2007.
[2]劉懿,鮑德沛,楊澤紅.新型時間序列相似性度量方法研究[J].計算機應(yīng)用研究,2007,24(5):112-114.
[3]KEOGH E,RATANAMAHATANA C A.Exact indexing of dynamic time warping[J].Springer-Verlag London Ltd,2005,10.1007/s10115-004-0154-9:358-386.
[4]閆秋艷,孟凡榮.一種基于關(guān)鍵點的 SAX改進算法[J].計算機研究與發(fā)展,2009,46(z2):483-490.
[5]杜奕.時間序列挖掘相關(guān)算法研究及應(yīng)用[D].合肥:中國科學技術(shù)大學,2007.
[6]汪小帆,李翔,陳關(guān)榮.復雜網(wǎng)絡(luò)理論及其應(yīng)用[M].北京:清華大學出版社,2006:169-171.