[英]How to preprocess time series data in Python for forecasting
我正在嘗試准備一些時間序列數據(Forex),以便在Python中進行預測。 該計划是將時間序列轉換為一個二維Numpy數組,該數組將通過PypeR作為R矩陣傳遞給R,以訓練ANFIS(自適應神經模糊推理系統)進行預測。 (我之所以經歷如此復雜的過程,純粹是出於學術考慮。)這將要求前n列為最后n個數據點,第(n +1)列為當前/預測值。
請考慮以下數據點:
Date AUD-USD
9/1/1999 0.6452
9/2/1999 0.6466
9/3/1999 0.6466
9/4/1999 0.6466
9/5/1999 0.6459
9/6/1999 0.6494
9/7/1999 0.6479
9/8/1999 0.653
9/9/1999 0.6512
為了簡單起見,假設前面的五個點將用作預測下一個數據點的輸入。 然后,該數組應類似於:
t - 5 t - 4 t - 3 t - 2 t - 1 t
9/6/1999 0.6452 0.6466 0.6466 0.6466 0.6459 0.6494
9/7/1999 0.6466 0.6466 0.6466 0.6459 0.6494 0.6479
9/8/1999 0.6466 0.6466 0.6459 0.6494 0.6479 0.653
9/9/1999 0.6466 0.6459 0.6494 0.6479 0.653 0.6512
減去日期(為清楚起見,僅在此處)。
問題是這樣的:是否有一個現有的Python函數或庫可以實現所需的結果? 還是最好通過一系列循環手動完成? 另外,這個過程叫做什么嗎? 對於Google來說,我似乎找不到解決方案,所以也許我只是不知道該說什么。
您可以輕松地在一行中構造移位數組。 在這里,我使用了整數范圍來幫助您了解發生了什么-只需將A
替換為您的數據即可。
import numpy as np
A = np.arange(10)
cut = 6
B = np.array([A[k-cut:k] for k in xrange(cut,A.size)])
print B
給予:
[[0 1 2 3 4 5]
[1 2 3 4 5 6]
[2 3 4 5 6 7]
[3 4 5 6 7 8]]
要解析日期,請嘗試查看熊貓,這是一個出色的數據處理庫,尤其是在涉及日期時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.