首页 文章

如何重塑keras LSTM的输入?

提问于
浏览
-1

我有一个大约5000行和4列(温度,压力,速度,成本)的numpy数组 . 所以这是形状(5000,4) . 每一行都是定期观察,这是我第一次进行时间序列预测而且我坚持输入形状 . 我试图从最后一个数据点预测1个步长的值 . 如何在keras中将其重塑为LSTM模型的3D形式?

如果编写一个小样本程序,它会更有帮助 . 似乎没有任何示例/教程,其中输入具有多个功能(也不是NLP) .

1 回答

  • 0

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

    • 输入要素对要预测的值的相关信息进行编码的时间刻度是多少?

    我们称之为时间刻度 prediction_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_train.shape = (recording_length - prediction_context, prediction_context, n_features)
    因此,您需要在预测上下文的长度与培训网络所需的示例数量之间进行权衡 .

相关问题