时序分析 43 -- 时序数据转为空间数据 (二) 马尔可夫转换场
馬爾可夫轉換場(MRF,Markov Transition Fields)
MRF
????馬爾可夫轉換場(MRF, Markov Transition Fields)比GAF要簡單一些,其數學模型對于從事數據科學的工程師來說也并不陌生,諸如馬爾可夫模型或隱含馬爾可夫模型(HMM)也是我們經常會用到的建模方法,在自然語言處理、機器學習等數據科學任務中也會經常遇到。
????我們假設一個長度為 N N N 的時序數據,第一步我們把每一個值放到一個分位數中,例如,如果我們使用四分位數,那么就是把所以的值放置到其屬于的分位桶中,25%,50%,75%,100%。這有點類似于直方圖中的bin值。我們可以把每一個桶想象成馬爾可夫模型中的一種狀態。
馬爾可夫狀態轉移矩陣
????接下來,我們構造馬爾可夫狀態轉移矩陣:
A i j = P ( s t = j ∣ s t ? 1 = i ) A_{ij} = P(s_t = j | s_{t-1} = i) Aij?=P(st?=j∣st?1?=i)
記得這里的 A i j A_{ij} Aij? 代表從狀態 i i i 轉到狀態 j j j 的轉移概率,如果我們用 Q Q Q 分位數,那么這個矩陣就是 Q × Q Q \times Q Q×Q
通常情況下,我們會采用最大似然法來估計轉移概率,簡單來說 A i j A_{ij} Aij? 可以用從狀態 i i i 到 j j j 的計數除以狀態 i i i 的次數或者是計數矩陣進行規范化。可以看到,從原時序數據轉化來的馬爾可夫狀態轉移矩陣對于原數據的分布不太敏感,并且丟失了時間信息,這并不是一個好事。所以MTF浮出水面。
MTF,馬爾可夫轉換場
? MTF,即馬爾可夫轉換場,記作 M M M ,是一個 N × N N \times N N×N 矩陣, N N N 為時序長度:
M k l = A q k q l M_{kl} = A_{q_k q_l} Mkl?=Aqk?ql??
其中, q k q_k qk? 是 x k x_k xk? 的分位桶, q l q_l ql? 是 x l x_l xl? 的分位桶, x x x 為時序數據。
MTF 形如:
M = [ w i , j ∣ x 1 ∈ q i , x 1 ∈ q j w i , j ∣ x 1 ∈ q i , x 2 ∈ q j … w i , j ∣ x 1 ∈ q i , x n ∈ q j w i , j ∣ x 2 ∈ q i , x 1 ∈ q j w i , j ∣ x 2 ∈ q i , x 2 ∈ q j … w i , j ∣ x 2 ∈ q i , x n ∈ q j … … … … w i , j ∣ x n ∈ q i , x 1 ∈ q j w i , j ∣ x n ∈ q i , x 2 ∈ q j … w i , j ∣ x n ∈ q i , x n ∈ q j ] M = \begin{bmatrix} w_{i,j|x_1\in q_i,x_1\in q_j} & w_{i,j|x_1\in q_i,x_2\in q_j} & … & w_{i,j|x_1\in q_i,x_n\in q_j} \\ w_{i,j|x_2\in q_i,x_1\in q_j} & w_{i,j|x_2\in q_i,x_2\in q_j}& … & w_{i,j|x_2\in q_i,x_n\in q_j} \\ … & … & … & … \\w_{i,j|x_n\in q_i,x_1\in q_j} & w_{i,j|x_n\in q_i,x_2\in q_j} & … & w_{i,j|x_n\in q_i,x_n\in q_j}\end{bmatrix} M=? ??wi,j∣x1?∈qi?,x1?∈qj??wi,j∣x2?∈qi?,x1?∈qj??…wi,j∣xn?∈qi?,x1?∈qj???wi,j∣x1?∈qi?,x2?∈qj??wi,j∣x2?∈qi?,x2?∈qj??…wi,j∣xn?∈qi?,x2?∈qj???…………?wi,j∣x1?∈qi?,xn?∈qj??wi,j∣x2?∈qi?,xn?∈qj??…wi,j∣xn?∈qi?,xn?∈qj???? ??
注意這里的 M M M 和 A A A 是不一樣的 , A A A 中的下表是狀態,而 M M M 中的下標是時序數據中的時間。相對于 A A A 的意義來講, M k l M_{kl} Mkl? 是 x k x_k xk? 所在的分位桶轉移到 x l x_l xl? 所在的分位桶的概率。如下這種表示可能比較容易理解:
M i , j ∣ ∣ i ? j ∣ = k M_{i,j||i-j|=k} Mi,j∣∣i?j∣=k? 表示了時間間隔為 k k k 個點的轉移概率,例如 M i j ∣ j ? i = 1 M_{ij|j-i=1} Mij∣j?i=1? 就表示在時間軸上相差一步的轉移概率。對角線上 M i i M_{ii} Mii? 是一種特殊情況,它意味著 ( k = 0 k=0 k=0 )在時間點 i i i 每一個分位桶轉移到自身的概率。
MTF表示了時序數據中的任意兩個時間點的數據之間的關系,相對的給出了它們之間從狀態上看是否經常相鄰。
MTF 聚合壓縮
? 有的時候,我們希望能夠壓縮MTF矩陣的尺寸,尤其是MTF應用于可視化的時候。最常用的方法是對MTF圖像中的像素進行求平均聚合運算,就是對每一個非重疊的 m × m m\times m m×m 窗口使用模糊核(blurring kernel) { 1 m 2 } m × m \{\frac{1}{m^2}\}_{m\times m} {m21?}m×m?進行平均。這種操作可以理解為對每一個長度為 m m m 的序列的轉換概率進行聚合運算。
? 下圖簡單解釋了MTF的整個過程:
總結
以上是生活随笔為你收集整理的时序分析 43 -- 时序数据转为空间数据 (二) 马尔可夫转换场的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C的指针疑惑:C和指针17(经典抽象数据
- 下一篇: 程序员的希波克拉底誓言