簡體   English   中英

機器學習預測時間序列多類信號變化

[英]Machine Learning to predict time-series multi-class signal changes

我想預測時間相關信號的切換行為。 目前該信號有 3 個狀態(1、2、3),但未來可能會發生變化。 然而,就目前而言,假設三種狀態是絕對可以的。

我可以對這些狀態做出以下假設(見圖):

  1. 信號周期性地重復,可能與一天中的時間有關。
  2. 對於所有信號,state 2 的持續時間始終恆定且相對較短。
  3. 狀態 1 和 3 的持續時間也是恆定的,但會因不同的信號而變化。
  4. 切換順序始終相同:1 --> 2 --> 3 --> 2 --> 1 --> [...]
  5. 不同信號之間有一個恆定但未知的時間參考。
  6. 我對不同信號的觀察之間沒有恆定的時間參考。 它們只是一個接一個地測量,但總是在不同的時間。
  7. 在獲得更多樣本后,我可以定期重建我的 model。

信號模型和觀察的草圖

我有以下問題:

  1. 我一次只能觀察一個信號。
  2. 我只能觀察不同時間的信號。
  3. 我無法使用 state 轉換觸發我的測量。 這意味着,當我測量時,我總是在 state 的“中間”。 因此我不知道這個 state 什么時候開始,也不知道這個 state 什么時候結束。
  4. 我無法長時間觀察某個信號。 所以,我無法觀察到一個完整的時期。
  5. 我的樣本(觀察)在時間上很普遍。
  6. 我想預測當前時間的 state 更改或當前 state。 我很可能永遠不會在請求的時間內測量我的信號。

到目前為止,我已經測試了 ML.NET 工具箱中的 TimeSeriesPredictor,因為它似乎適合我。 但是,在我看來,這種算法要求您始終只傳遞一個信號的數據。 這意味着假設 5 不包括在預測中,這可能是次優的。 此外,在這種情況下,我遇到了預測沒有改變的問題,當我查詢多個預測時,這實際上應該隨時間發生。 這種行為讓我相信只有輸入 model 的值的順序,而不是相關的時間戳。 如果我正確理解了所有內容,那么這個時間戳就是我最重要的“特征”......到目前為止,我沒有對基於回歸的方法(例如 FastTree)進行任何測試,因為我的數據不是線性的,而是不斷變化的狀態. 也許這個假設是無效的,基於回歸的方法也可能是合適的?

我也不知道是否需要多分類器,因為我知道 TimeSeriesPredictor 也適用於此,因為它適用於單一數據類型。 預測是 1.3 還是正好 1.0 對我來說都很好。

總結一下:我正在尋找一種能夠根據丟失和廣泛樣本識別切換模式的算法。 可以定義邊界,例如信號 1 的 state 持續時間 3 永遠不會超過 30 秒,或者信號 3 的 state 持續時間 1 永遠不會持續超過 60 秒。 然后,在算法獲得開關行為的近似 model 之后,我想請求對某個信號 state 進行一段時間的預測。

我可以使用哪些方法來獲得最佳預測,最好使用 ML.NET 工具箱或基於 matlab?

不確定這是否正是您正在尋找的,但如果您正在尋找使用信號檢測尖峰和變化,請查看 ML.NET 中的異常檢測算法 這里有兩個教程展示了如何使用它們。

解決這個問題的一種方法是首先獨立地確定每個信號的周期性。 這可以通過僅查看每個信號的 state 2 測量之間的時間差的頻率分布來完成。

這將給出多項分布 最短的時間差將是切換事件的持續時間(在丟棄小於 state 2 的最大持續時間的時間差之后)。 第二個最短的峰值將是一個開關事件結束和下一個開關事件開始之間的持續時間。

當您有 3 種周期性計算時,您可以簡單地計算它們之間的差異。 鑒於您有每個信號的 state 2 測量的時間戳,您應該能夠計算所有其他信號的切換時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM