Python 如何重塑keras LSTM的输入?

Python 如何重塑keras LSTM的输入?,python,numpy,neural-network,keras,lstm,Python,Numpy,Neural Network,Keras,Lstm,我有一个大约5000行和4列(温度、压力、速度、成本)的numpy数组。这是(5000,4)的形状。每一行都是一个有规律间隔的观察值这是我第一次做时间序列预测,我被输入形状卡住了。我想预测一下 距离最后一个数据点1 timestep的值。如何将其重塑为keras中LSTM模型的3D形式 此外,如果编写一个小的示例程序,它将更有帮助。似乎没有任何示例/教程说明输入具有多个功能(也不是NLP)。您应该问自己的第一个问题是: 输入特征为您想要预测的值编码相关信息的时间尺度是什么 让我们把这个时间尺

我有一个大约5000行和4列(温度、压力、速度、成本)的numpy数组。这是(5000,4)的形状。每一行都是一个有规律间隔的观察值这是我第一次做时间序列预测,我被输入形状卡住了。我想预测一下 距离最后一个数据点1 timestep的值。如何将其重塑为keras中LSTM模型的3D形式


此外,如果编写一个小的示例程序,它将更有帮助。似乎没有任何示例/教程说明输入具有多个功能(也不是NLP)。

您应该问自己的第一个问题是:

  • 输入特征为您想要预测的值编码相关信息的时间尺度是什么
让我们把这个时间尺度称为
prediction\u context

您现在可以创建数据集:

import numpy as np

recording_length = 5000
n_features = 4
prediction_context = 10  # Change here
# The data you already have
X_data = np.random.random((recording_length, n_features))
to_predict = np.random.random((5000,1))
# Make lists of training examples
X_in = []
Y_out = []
# Append examples to the lists (input and expected output)
for i in range(recording_length - prediction_context):
    X_in.append(X_data[i:i+prediction_context,:])
    Y_out.append(to_predict[i+prediction_context])

# Convert them to numpy array
X_train = np.array(X_in)
Y_train = np.array(Y_out)
最后:
X\u train.shape=(记录长度-预测上下文、预测上下文、n\u特征)


因此,您需要在预测上下文的长度和培训网络所需的示例数量之间进行权衡

你应该问自己的第一个问题是:

  • 输入特征为您想要预测的值编码相关信息的时间尺度是什么
让我们把这个时间尺度称为
prediction\u context

您现在可以创建数据集:

import numpy as np

recording_length = 5000
n_features = 4
prediction_context = 10  # Change here
# The data you already have
X_data = np.random.random((recording_length, n_features))
to_predict = np.random.random((5000,1))
# Make lists of training examples
X_in = []
Y_out = []
# Append examples to the lists (input and expected output)
for i in range(recording_length - prediction_context):
    X_in.append(X_data[i:i+prediction_context,:])
    Y_out.append(to_predict[i+prediction_context])

# Convert them to numpy array
X_train = np.array(X_in)
Y_train = np.array(Y_out)
最后:
X\u train.shape=(记录长度-预测上下文、预测上下文、n\u特征)


因此,您需要在预测上下文的长度和培训网络所需的示例数量之间进行权衡

四个观测值都是输入变量还是其中一个是输出变量?共有4列(温度、压力、速度、成本),我想使用所有列(包括温度)的过去值预测其中一列(主要是第一列,温度)的未来值,如果有意义。首先看一下,看看它是否有助于理解如何重塑LSTM的数据,如果有,我可以回答,但问题非常相似。所有四个观察值都是输入变量,还是其中一个是输出?共有4列(温度、压力、速度、成本),我想预测其中一列的未来值(主要是第一列,temp)使用所有列(包括temp)的过去值,如果有意义的话。先看一下,看看它是否有助于理解如何重塑LSTM的数据,如果有,我可以回答,但问题与数据点(实例)非常相似每隔15分钟观察一次,如果这是你所说的时间刻度的话?y_数据基本上是数据集中的一列。我有四列,我想使用该(temp)列和其他列(压力、速度、成本)的过去值预测其中一列(比如temp)的未来值。我还想了解如何将LSTM的2D阵列重塑为3D。数据点(实例)每隔15分钟观察一次,如果这就是你所说的时间刻度的话?y_数据基本上是数据集中的一列。我有四列,我想预测其中一列(例如temp)的未来值使用该(temp)列和其他列(压力、速度、成本)的过去值。我还想了解如何将LSTM的二维阵列重塑为三维阵列。