Matrix Profile 與 Stumpy (時間序列挖掘,矩陣畫像)


Matrix Profile 矩陣畫像 (下文中簡稱為MP)
是由UCR(加州大學河濱分校)提出的一個時間序列的分析算法
——————————————————————————
目錄:
算法簡介
算法庫
算法應用
其他集成應用
——————————————————————————
算法簡介
通過一個時間序列,可計算出它的MP,MP也是一個向量(時間序列)
以下面的時間序列為例: [0, 1, 3, 2, 9, 1, 14, 15, 1, 2, 2, 10, 7]
比較兩個子序列的距離,以歐拉距離為例:

第一個子序列向后滑動逐個計算距離:
Pairwise Euclidean Distance
逐個計算后,會得到一個n*n的矩陣,取每行的最大值,得到的向量,即為MP
Matrix Profile
(中文定義摘自論文《基於矩陣畫像的金融時序數據預測方法》,但此定義也是翻譯自MP的英文論文, 此處主要看計算距離的公式,不再是歐拉

還有一點需要注意的是,計算距離的矩陣,在取最小值時,會考慮exclusion zone,可以避免計算距離的兩個子序列是有較大重疊的帶來的影響。 exclusion zone 一般取 i ± int(np.ceil(m / 4))


算法庫(工具)
2. STUMPY https://github.com/TDAmeritrade/stumpy    后面的算法應用的例子,主要采用stumpy
算法應用
motif挖掘(利用MP的最小值)
異常發現(利用MP的最大值)
下面是出租車乘客量的例子,與平常不一致的日期是一些節假日
在此處,時間鏈被認為是 隨着時間的推移在某個方向上演化或漂移的motif, 即重復出現的motif
下圖是科顏氏在谷歌上的搜索量的統計圖,可以看到彩色部分的波峰,具有一定的相似性

此處主要是利用stumpy計算返回后的數組,mp = stumpy.stump(df['volume'], m=m)  會返回一個n*4的矩陣,每一列分布表示:
out : ndarray
     The first column consists of the matrix profile,  MP值
     the second column  consists of the matrix profile indices,   MP的索引,即第幾個子序列
     the third column consists of  the left matrix profile indices,   MP的左索引,即與該子序列最為相似的左邊序列的索引
     the fourth column consists of  the right matrix profile indices.  MP的右索引,即與該子序列最為相似的右邊序列的索引
all_chain_set, unanchored_chain = stumpy.allc(mp[:, 2], mp[:, 3])  計算得到的鏈
_images/Tutorial_Time_Series_Chains_8_0.png
找到分界線
Fast low-cost unipotent semantic segmentation (FLUSS),計算“arc curve” 標識時間序列區域更迭的可能性, ac標識跨過該節點的弧線的數量
Fast low-cost online semantic segmentation (FLOSS) is a variation of FLUSS, 計算的是corrected arc curve (CAC) ,是一個單向的,可以處理實時時間流的數據。
計算CAC,首先需要計算IAC,IAC是指跨過該節點的理想數量

此處使用的是動脈血壓的監測數據,陰影處為平放和豎直放的分界
首先,需要計算  arc curve ,使用的是mp的索引列
m = 210
mp = stumpy.stump(abp, m=m)
L = 210
cac, regime_locations = stumpy.fluss(mp[:, 1], L=L, n_regimes=2, excl_factor=1)   (L--子序列長度,n_regimes-分類數目,excl_factor——使圓弧曲線的起點和終點無效,取值在1-5)
使用scrump
使用stumpyi
輸入一個查詢序列,與一段時間序列,查詢最為相近的時間序列
例子中使用的數據為機器狗在不同區域(地毯carpet,水泥cement)走動時的加速器數據
需要查詢匹配的序列:
計算結果:

其他集成應用
1. 基於矩陣畫像的金融時序數據預測方法
這篇文章是用於預測股票市場
首先是構建主要交易行為的序列知識庫(換手率?)
進行模式匹配,文章說效果比arima和lstm好
2. 基於事件序列聚類的文獻主題分析研究
通過NLP得到主題詞的關聯詞
關聯詞的時間熱度
使用MP計算時間熱度序列間的關聯度,最近鄰的作為連接,從而構建詞網
使用社區挖掘的技術,進行挖掘,得到的團即為聚好的類







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM