Time-Series

具有時間序列的高斯過程

  • December 30, 2017

我正在嘗試應用高斯過程來估計傳感器讀數的值。我有幾年的傳感器讀數(每小時節奏的時間序列),所以我的數據是一個由兩列組成的數組,第一列是時間,另一列是當時的傳感器讀數。我試圖編寫高斯過程的代碼,但我不知道如何對時間進行建模,因為它是模型的輸入,我是否應該只使用小時作為數字,所以我最終得到了一系列重複的0 到 23 之間的數字?我應該使用整數的 UNIX 時間戳,但我最終會得到一個不斷增加的數字系列嗎?處理此問題的最佳做法是什麼?換句話說,當我們處理時間序列時,高斯過程模型的輸入是什麼。如果您能提供一些 python 或 MATLAB 中的代碼片段,將不勝感激。還有一個問題,你能推荐一個 Python 包來處理使用高斯過程預測時間序列的問題嗎?

逆序有許多不錯的 GP 庫,例如 SKLearn、GPy、pyGPs、GPflow 等。

其次,您的輸入顯然是時間,您可以根據需要對其進行預處理,但您應該了解高級問題,例如我只關心一天中的時間嗎?(在這種情況下,您可以刪除日期並僅保留 0-23 小時)或者您是否還想模擬季節性趨勢?(在這種情況下,unix 時間戳可能很有用)

重要的是要了解 GPS 不僅僅是一種平滑的外推技術 - 因此您可以通過您選擇的內核來編碼時間點的相似程度。因此,例如,每日趨勢可能被編碼為周期為一天的周期性內核。然後,您可以添加並乘以它來調整週期性內核,也許添加一些噪音等等。這種核算法的組合在函數空間的總和和乘積上創建了分佈。查看例如http://www.cs.toronto.edu/~duvenaud/cookbook/https://github.com/jkfitzsimons/IPyNotebook_MachineLearning/blob/master/Just%20Another%20Kernel%20Cookbook....ipynb .

引用自:https://stats.stackexchange.com/questions/320953

comments powered by Disqus