如何在Python中预处理用于预测的时间序列数据
我正在准备一些用于Python预测的时间序列数据外汇。该计划是将时间序列转换为二维Numpy阵列,通过PypeR将其作为R矩阵传递给R,以训练ANFIS自适应神经模糊推理系统进行预测。我之所以要经历如此复杂的过程,纯粹是出于学术原因。这要求前n列为最后n个数据点,第n+1列为当前/预测值 考虑以下数据点:如何在Python中预处理用于预测的时间序列数据,python,Python,我正在准备一些用于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/
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函数或库可以实现预期的结果?或者这最好是通过一系列循环手动完成的?另外,这个过程叫什么?我似乎无法用谷歌搜索解决方案,所以可能我不知道该用什么词来称呼它。您可以很容易地在一行中构造移位数组。在这里,我使用整数的范围来帮助您了解发生了什么-只需用数据替换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]]
对于解析日期,请尝试查找pandas,它是一个非常好的数据处理库,尤其是当涉及日期时 太棒了!所以,在我看来,这是一个列表。它是?作为Python的新手,我还没有考虑过这样使用它。这就是它的全部,再加上一点切片和对numpy数组的转换。