繁体   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