基于動態(tài)時間彎曲的數(shù)據(jù)流模式匹配方法【
技術領域:
】[0001]本發(fā)明涉及數(shù)據(jù)庫、數(shù)據(jù)挖掘、信息檢索等領域,尤其涉及數(shù)據(jù)流管理和模式匹配?!?br>背景技術:
】[0002]數(shù)據(jù)流廣泛存在于人們的日常生活及工業(yè)生產中,如基金或股票的實時交易數(shù)據(jù),零售市場的日銷量數(shù)據(jù),流程工業(yè)的傳感器監(jiān)測數(shù)據(jù),天文觀測數(shù)據(jù),航空航天雷達、衛(wèi)星監(jiān)測數(shù)據(jù),實時天氣溫度及空氣質量指數(shù)等。對數(shù)據(jù)流的模式匹配,在工業(yè)界和金融界有著廣泛的應用需求。比如,在股票市場的實時交易中,交易員想要從高速流來的實時股票價格數(shù)據(jù)中,查詢出與特定波動模式最相似的價格子序列作為參考,從中獲取有價值的知識和啟發(fā),完成交易行為。影響模式匹配精度和效率的關鍵因素是衡量子序列相似性的距離度量方法。[0003]目前工業(yè)界最常用的序列相似性度量方法可分為鎖步度量和彈性度量。前者采用了一對一的度量方式,即序列1\和T2之間的距離是通過嚴格比較T:和T2在各自第i個位置的點對,再累加所有點對的距離得到。該類方法最常見的有曼哈頓距離、歐氏距離和切比雪夫距離,它們都是Lp-n〇rms距離在p取不同值時的特例。該類方法具有易實現(xiàn)、計算復雜度低、滿足距離三角不等式、無參數(shù)等優(yōu)點;但是,其度量精度對噪聲、異常點、幅值伸縮和漂移、相位偏移等非常敏感,并且只能用于度量等長的序列。彈性度量方法采用了一對多的度量方式,即序列的一個點可以與T2的多個連續(xù)點相對應,通過動態(tài)規(guī)劃方法遍歷T:和丁2的所有點對之間的距離。該類方法最常見的有動態(tài)時間彎曲距離〇)TW)和編輯距離的變種(如LCSS、EDR、ERP)等。與鎖步度量相比,彈性度量能夠實現(xiàn)兩條序列的最佳對齊匹配,可以有效處理時間彎曲、相位偏移、幅值伸縮和漂移等基本形態(tài)變化,對噪聲和異常點具有魯棒性,因此,彈性度量具有較高的度量精度。但是,該類方法具有較高的計算復雜度,當度量高維序列時會導致高昂的時間開銷,難以在工業(yè)生產中處理高速的動態(tài)數(shù)據(jù)流。[0004]基于序列特征計算彈性度量是改進其高計算復雜度的一種有效方法,即首先采用數(shù)據(jù)表示方法將原始序列映射到低維的特征空間,然后進行彈性度量。目前工業(yè)界常用的數(shù)據(jù)表示方法可分為非數(shù)據(jù)適應性方法和數(shù)據(jù)適應性方法。對于前者,變換參數(shù)不受單獨的序列影響,而始終保持不變;該類表示大多基于頻譜分解實現(xiàn),如離散傅里葉變換、離散小波變換、離散余弦變換,它們主要通過對原始序列做相應的頻域變換,提取主要的頻譜系數(shù)作為特征;該類方法各有缺陷,如離散傅里葉變換只能提取總體形態(tài)特征而忽略了局部特征,離散小波變換只能處理長度為2的指數(shù)次的序列,離散余弦變換的信息丟失較多,對原始數(shù)據(jù)的重構誤差較大。數(shù)據(jù)適應性表示是指對變換參數(shù)的確定需要依賴數(shù)據(jù)本身;通過增加數(shù)據(jù)敏感的選擇處理過程,可以把大部分非數(shù)據(jù)適應性方法變?yōu)閿?shù)據(jù)適應性方法。該類方法有分段聚集近似、分段線性近似、符號化聚集近似、奇異值分解、主成分分析等,前三種都需要先對原始序列進行分段,然后對每一子段單獨處理:分段聚集近似是對各段求平均值;分段線性近似是對各段做線段擬合;符號化聚集近似是在分段聚集近似基礎上將每段平均值離散化為符號;由于它們所提取的特征較為單一,使其對序列波動模式的表達能力較弱。奇異值分解和主成分分析是通過對所有序列做統(tǒng)一的特征矩陣分解實現(xiàn)的;這兩類方法的典型缺陷是,它們具有很高的計算復雜度,而且分解過程只能在內存完成,數(shù)據(jù)規(guī)模的可擴展性很低?!?br/>發(fā)明內容】[0005]本發(fā)明要解決的問題是如何實現(xiàn)在高速動態(tài)數(shù)據(jù)流中實時匹配預設的波動模式,以獲取最相似的子序列。為了解決該問題,本發(fā)明提出了基于動態(tài)時間彎曲的數(shù)據(jù)流模式匹配方法。[0006]本發(fā)明的目的是通過以下技術方案實現(xiàn)的:一種基于動態(tài)時間彎曲的數(shù)據(jù)流模式匹配方法,包括以下步驟:[0007](1)分段特征抽取,具體包括以下子步驟:[0008](1.1)對數(shù)據(jù)流T做移動平滑處理,得到平滑數(shù)據(jù)流T';[0009](1.2)基于滑動窗口依次截取T'的相鄰3點,并計算平均值,通過判斷各點與平均值的大小關系對其編碼,得到T的編碼序列CT,并定義轉折模式表TP_table;[0010](1.3)順序掃描CT,對每對相鄰編碼組合查詢TP_table中的轉折模式,如果模式匹配,則將該編碼組合所在位置作為T的分段點,得到子段Si;[0011](1.4)對S#)z-規(guī)范化處理,得到規(guī)范化的子段S/;[0012](1.5)采用第一類切比雪夫多項式分解S'p計算前a個多項式系數(shù)Ci作為子段特征,構造子段特征向量V'i=[cc2,...,cj;[0013](1.6)掃描完畢,將現(xiàn)有的T切分為X條子段,保存它的分段切比雪夫近似表示PCHA⑴=作,"…,%};[0014](2)在線模式匹配,具體包括以下子步驟:[0015](2.1)根據(jù)步驟(1)對查詢序列Q做相同處理,將其切分為M條子段,得到Q的分段切比雪夫近似表示PCHA(Q)={Vi,...,VM};[0016](2.2)根據(jù)實際應用需求設定模式匹配閾值e,初始化動態(tài)規(guī)劃表7i//+=0;[0017](2.3)計算\^與V'丨的距離dist(VV'),記入Table的單元格cell(1,1),作為動態(tài)規(guī)劃最優(yōu)路徑I的起始路徑點P1;1;[0018](2.4)計算他5^(¥2,¥'1),乜#(¥2,¥'2),乜#(¥1,¥'2)},通過比較得到三者的最小值min,將min+dist(V^V')記入{cell(2,1),cell(2,2),cell(1,2)}中的相應單元格,作為I的第二個路徑點;[0019](2.5)假設|的當前路徑點是Pi,』,則計算{dist(Vi+1,V'』),dist(Vi+1,V'j+1),dist%,V'j+1)},并篩選其中最小值min,將min+dist%,V'』)記入{cell(i+1,j),cell(i+l,j+l),cell(i,j+l)}中的相應單元格,作為|的最新路徑點;[0020](2.6)循環(huán)執(zhí)行步驟(2.5),直至PCHA(Q)完全匹配,得到最優(yōu)路徑|={Pu,…,Pm-1,j,Pm,J,N表不與Q匹配的子序列長度;[0021](2.7)比較cell(M,N)與e的大小,若cell(M,N)彡e,則將|所對應的數(shù)據(jù)流子序列加入模式匹配結果集R,并以cell(tv'%)作為下一條最優(yōu)路徑的起點;若cell(M,N)>e,則以dist…V'2)作為下一條最優(yōu)路徑的起點;[0022](2.8)重復執(zhí)行步驟(2.3)~(2.7)計算|',匹配下一條子序列;當前第1頁1 2