对于预测时间序列数据,我觉得最好的选择是LSTM,它是一种递归神经网络,非常适合于时间序列回归。在
如果您不想深入研究神经网络的后端,我建议您使用Keras库,它是Tensorflow框架的包装器。在
假设你有一个一维数组,你想预测下一个值。Keras中的代码可能如下所示:#start off by building the training data, let arr = the list of values
X = []
y = []
for i in range(len(arr)-100-1):
X.append(arr[i:i+100]) #get prev 100 values for the X
y.append(arr[i+100]) # predict next value for Y
由于LSTM需要三维输入,因此我们希望将X数据重塑为具有3个维度:
^{pr2}$
现在,以时间为单位,以时间为单位
在这里,我们可以使用keras构建一个神经网络:from keras.models import Sequential
from keras.layers import Dense, LSTM
model = Sequential()
model.add(LSTM(input_shape = (len(X[0], 1)) #input 3-D timeseries data
model.add(Dense(1)) #output 1-D vector of predicted values
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(X, y)
viola,你可以用你的模型来预测数据中的下一个值