首頁>技術>

使用馬爾可夫轉換欄位和網路圖揭示時間序列行為

> Photo by Fabrizio Verrecchia on Unsplash

資料總覽

在上面提到的GitHub儲存庫中,您還將找到在工業裝置上捕獲的7個訊號。每個訊號包含一個小時取樣率的一年資料,它們表現出我們將嘗試表徵的不同行為。讓我們來畫第一個:

> Raw original signal (image by the author)

馬爾可夫過渡場(MTF)MTF概述

pyts包提供了一些現成的時間序列成像功能,包括MTF:透過此轉換,可以透過以下矩陣表示先前的訊號:

> Markov transition field of the previous signal (image by the author)

現在,讓我們分解產生這種視覺表現的過程。在以下各節中,我們將分解構建馬爾可夫轉換欄位的方式,以更好地瞭解其屬性以及如何將其用於建立對時間序列行為的理解:

· 將時間序列離散化為可以採用的不同值

· 建立馬爾可夫轉移矩陣

· 計算過渡機率

· 計算馬爾可夫轉換場

· 計算彙總的MTF

· 提取有意義的指標

· 將過渡機率映射回初始訊號

步驟1:訊號離散化

我們再次使用pyts包(由您真正構建的tsia包抽象)來離散化我們的訊號:

X_binned, bin_edges = tsia.markov.discretize(tag_df)

此後,時間序列的每個值x [i]與我們剛剛計算的bin(分位數)之一相關聯。第一個和最後一個邊沿分別對應於訊號所取的最低和最高值。中間倉邊緣由離散器計算。對於較早載入的訊號,此量化過程將以下訊號合併到該訊號中:

| Bin | Start | End || 0 | < 82.4 | 82.4 || 1 | 82.4 | 118.4 || 2 | 118.4 | 137.4 || 3 | 137.4 | 156.8 || 4 | 156.8 | 166.4 || 5 | 166.4 | 175.2 || 6 | 175.2 | 183.9 || 7 | 183.9 | 196.5 || 8 | 196.5 | 255.3 || 9 | 255.3 | > 255.3 |

讓我們在時間序列上繪製這些bin,以視覺化如何離散化值:

> Quantized signal: each bin is represented by a different color band (image by the author)

步驟2:建立馬爾可夫轉換矩陣

一旦我們的訊號被量化,我們就可以建立一個馬爾可夫轉移矩陣:

如何閱讀馬爾可夫轉移矩陣?讓我們看一下第一行:465 |86 |1 |0 |0 |0 |0 |0 |:

· 第一個單元格告訴我們,bin 0中的465點(值在82.4和118.4之間)後跟一個值,該值一直位於該bin中。

· 第二個單元格告訴我們bin 0中的86個點過渡到下一個bin(值在118.4和137.4之間)

· … 等等…

· 第八個單元格告訴我們從bin 0過渡到最後一個bin沒有點

現在讓我們看第二行:80 |405 |63 |2 |0 |2 |0 |0 |:第一個單元格告訴我們bin 1中的80個點(值在118.4和137.4之間),後跟bin 0中的值(在82.4和118.4之間)。

最後但並非最不重要的一點是,對角線捕獲了分位數轉換為其自身的頻率(自轉換頻率)。

步驟3:計算過渡機率

現在,我們將標準化每個容器。現在,此矩陣包含幅度軸上的過渡機率:

第一列對應給定值(給定bin的一部分)轉換為bin 0的機率。第二列對應給定值轉換為bin 1的機率,以此類推。例如,如果給定值X [i]等於130.0,介於118.42和137.42之間,並裝在bin 1中。給定上面的矩陣,有:

· 下一個值在82.43和118.42之間(框0)的可能性為14.5%

· 有73.4%的機會保持在同一範圍內(118.42至137.42之間,bin 1)

· 下一個值在137.42和156.78之間的可能性為11.4%(bin 2)

· … 等等…

步驟4:計算馬爾可夫轉換場

過渡域的思想是順序表示Markov過渡機率,以將資訊保留在時域中。MTF生成過程將每個機率沿時間順序對齊,以為整個訊號構建MTF:

如何閱讀馬爾可夫變遷場?MTF [i,j]表示從分位數q [i]到分位數q [j]的轉移機率。讓我們看一下該欄位第二行中的幾個值:

array([68.8, 68.8, 68.8, 68.8, 68.8, 68.8, 10.7, 10.7, 10.7, 10.7])

讓我們看一下M [1,2]:

· 我們看哪個容器在時間步長x [1]處落下訊號:這是X_binned [1] = 2

· 我們還查看了哪個bin在時間步長x [2]處使訊號下降:這是X_binned [2] = 2

· 然後,我們檢視Markov轉移矩陣,以獲取來自bin 2的值留在bin 2中的機率

· 該值是68.8%,因此M [1,2] = 68.8%

這是什麼意思?好吧,當檢視整個訊號時,在時間步長x [1]和時間戳x [2]之間發生的轉換就有68.8%的機會發生。

現在讓我們看一下M [1,6]:

· 我們看哪個容器在時間步長x [1]處落下訊號:這是X_binned [1] = 2

· 我們還檢視在哪個時間步x [10]中哪個bin落下了訊號:這是X_binned [6] = 1

· 然後,我們檢視Markov轉移矩陣,以獲取從bin 2值過渡到bin 1的機率

· 該值是10.7%,因此M [1,6] = 10.7%

當檢視整個訊號時,在時間步長x [1]和x [6]之間發生的過渡發生的可能性為10.7%。

現在,讓我們繪製剛才計算的過渡欄位:

> High resolution MTF: pixel colors map to transition probabilities (image by the author)

步驟5:計算彙總的MTF

為了使影象尺寸易於管理並提高計算效率(上述MTF是4116 x 4116尺寸的矩陣),我們透過對每個不重疊m x m色塊中具有模糊核心1 /m²的畫素進行平均來減小MTF尺寸。m是影象大小,我們將其任意設定為48。也就是說,我們將長度m = 48的每個子序列中的轉移機率彙總在一起。讓我們相應地計算一個聚合的MTF:如果訊號長度可以除以所選的影象大小(48),在這種情況下,我們可以使用以下簡單函式來計算聚合的MTF:

否則,我們需要計算分段聚合的近似值,但是請放心,在pyts包中,此方法已完全實現併為您服務!獲得的影象與本文頂部顯示的影象完全相同:

> Ta da! (image by the author)

步驟6:提取有意義的指標

MTF的對角線包含自轉移的機率:

· 自變遷機率是在下一時間步從分位數移動到相同分位數的機率。

· 我們可以提取這種分佈的特徵(均值和標準差)。

· MTF的其他對角線較難解釋,但仍可繪製。

> Metrics that can be derived from Markov transition fields (images by the author)

步驟7:將轉換機率映射回初始訊號

我們可以將這些機率映射回原始訊號的一種方法是獲取MTF對角線所示的轉移機率:

> Mapping self-transition probabilities back to the original signal (image by the author)

讓我們看一下粗略的MTF(image_size = 8會使其變得很粗略),以更好地理解我們可以從此Markov欄位中提取的內容:

> (Left) MTF (with an image size 8) | (Right) Original signal (images by the author)

我們對這個圖有什麼解釋?

· 平均而言,第一部分的平均過渡機率(黃色)約為19%:這意味著當我們檢視整個訊號時,在本部分中看到的過渡並不經常發生(19%的時間)。

· 相反,深藍色部分(第六部分)在此訊號中發生跳變的頻率更高(大約50%的時間)

藍色部分更接近該訊號的正常行為,而黃色部分與該訊號的偏離更大。

如果您想檢查如何將完全不同的訊號的行為對映到不同的MTF圖和度量標準,請先看一下筆記本,然後再繼續進行下一部分!

進入網路圖!總覽

從MTF,我們可以生成圖G =(V,E):我們在頂點V和時間索引i之間有直接對映。從那裡開始,有兩種可能的編碼方式:

· 流編碼:這種表示形式有助於我們觀察大資訊流在哪裡發生。我們將時間流對映到頂點,使用從T0到TN的顏色漸變為網路圖的每個節點著色,並使用MTF權重為頂點之間的邊緣著色

· 模組化編碼:模組化是網路分析中識別特定區域性結構的重要模式。我們將模組標籤(哪個社群ID)對映到每個頂點,每個社群具有特定的顏色,將頂點的大小對映到聚類係數,將邊緣顏色對映到目標頂點的模組標籤

在以下各節中,我們將分解構建網路圖的方式以更好地瞭解其屬性,以及如何將其用於建立對時間序列行為的理解:

· 建立訊號MTF並從中提取網路圖

· 計算分割槽和模組化,並將此資訊編碼為網路圖表示形式

· 繪製網路圖

· 將分割槽顏色映射回時間序列

步驟1:建立網路圖

我們從MTF中提取圖並從那裡繪製一個香草網路圖:

> Vanilla network graph… Not very insightful at this stage… (image by the author)

步驟2:將分割槽和模組化編碼到網路圖表示中

上面的網路圖並沒有給我們帶來很多新見解。我們將使用Louvain方法在該網路圖中搜索社群:模組化是介於-0.5(非模組化聚類)和1(完全模組化聚類)之間的標度值,用於度量社群內部邊緣相對於外部邊緣的相對密度社群。從理論上最佳化此值會導致給定網路的節點的最佳分組,但是將節點的所有可能迭代都分為幾組是不切實際的,因此使用啟發式演算法。在Louvain社群檢測方法中,首先透過在所有節點上區域性最佳化模組化來找到小型社群,然後將每個小型社群分組為一個節點,並重復第一步。此方法在社群包中實現(在此處記錄),我們在tsia包中使用它對網路圖進行編碼:

除了模組性和社群(或分割槽)數量之外,我們還可以從網路圖計算出其他感興趣的統計資料:

步驟3:繪製網路圖

現在,我們可以在網路圖中對這些資訊進行編碼,以使其更加豐富多彩,並且希望更加有用:

> Encoded network graph (image by the author)

我們對這個圖有什麼解釋?模組化度量和Louvain方法在該訊號中發現了4個社群。在這個階段,很難理解我們如何利用這些知識…

步驟4:將分割槽顏色映射回時間序列

在網路圖中檢測到的每個社群在原始時間序列中都有自己的形狀:

> Mapping network graph communities back to the original time series signal (image by the author)

您可以參考筆記本,透過為儲存庫中可用的其他訊號繪製相同的圖來進一步建立您的直覺。這裡有一些例子:

> Different signals behavior mapped to their associated network graphs (images by the author)

這些對映看起來不如從MTF獲得的那樣有價值。但是,可以從這些網路圖提取的功能對於根據訊號的行為對訊號進行分類看起來很有希望。這是前面引用的儲存庫中提供的7個訊號的示例:

> Network graph metric (image by the author)

結論與未來工作

將馬爾可夫轉換場對映到時間序列訊號的轉換機率看起來像是一個很好的工具,可以向終端使用者提供有關給定訊號行為的反饋。另一方面,將網路圖社群映射回原始時間序列似乎並沒有帶來太多價值:但是,從這些網路圖(請參見上表)中提取的功能將用於自動限定訊號的可用性,這很有趣。給定的用例。作為未來的研究領域之一,我們有興趣研究如何將這些工具應用於多元時間序列(尤其是高維度的工具,正如我們在工業環境中發現的那樣,每個工業裝置每個感測器有數百甚至數千個感測器)。

潛在用途

這些Markov轉換欄位和網路圖可能被潛在使用:

· 為了數學上確定給定訊號的特徵:恆定,穩定,有噪聲,單調…

· 比較訓練和驗證資料集的一致性(並檢測概念漂移)。

· 要訓練半監督異常預測模型:在正常訊號上訓練時間CNN,每分鐘(例如)執行和內聯MTF計算,並將推理結果與訓練後的模型進行比較以檢測訊號行為變化。

· 為了進一步解釋為什麼無監督時間序列異常檢測模型會發現異常

參考文獻

· 王志光Oates,Tim(2015),《改善分類和歸因的成像時間序列》,Arxiv。

· 劉璐。王志光(2018)在圖形中編碼時間馬爾可夫動力學以視覺化和挖掘時間序列Arxiv。

23
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 騰訊內部出品HTTP協議文件,超全彙總讓人直呼完美