适应单变量输入LSTM到多元变量

2024-10-03 17:24:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在使用LSTM来预测风速,但只使用风速的过去值作为输入。因为我还有其他的值(比如降水量和环境压力),我想把这两个变量作为输入,看看我是否有一个更好的模型。我能够对代码进行调整,但我必须使用一个特定的函数来查看过去的24小时值:

def funclook_back (dataset, hour, look_back=24):
    dataX, dataY = [], []
    for i in range(len(dataset)-look_back-1):
        a = dataset[i:(i+look_back), 0]
        h = hour[(i+look_back+1)]
        b = np.append(a, [h])
        dataX.append(b)
        dataY.append(dataset[i + look_back, 0])
    return np.array(dataX), np.array(dataY)


trainX, trainY = funclook_back(train, hour_train, look_back=24)
testX, testY = funcaolook_back(test, hour_test, look_back=24)
 # reshape input to be [samples, time steps, features]

trainX = np.reshape(trainX, (trainX.shape[0], 1, trainX.shape[1]))  # I'd like this two to have the 3 columns input
testX = np.reshape(testX, (testX.shape[0], 1, testX.shape[1]))

trainX形状是:(78314,1,24),我试图返回与train相同的格式(我在funclook_back上传递了3列数组),但无法返回

试图更改a = dataset[i:(i+look_back), :],但代码似乎返回了所有列,因为trainX形状变为(78314,1,70)

非常感谢您的帮助


Tags: npbacktraindatasetshapelookappendhour