簡體   English   中英

如何在Python中預處理時間序列數據以進行預測

[英]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.

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