scaler.inverse_transform()在将LSTM NN预测转换为真实数据值时出现错误

问题描述 投票:1回答:1

我已经在0到1之间转换了我的数据,并通过LSTM NN对其进行了馈送。结果也保持在0到1之间,并且要获得正确的输出,我需要将其转换回与原始数据值相同的输出。] >

但是

scaler=MinMaxScaler(feature_range=(0,1))
scaler.inverse_transform(result)

输出一个错误。我的代码如下。我在这里加载了保存的数据,目标和LSTM训练过的权重。

import numpy as np

data=np.load('data_2.npy')
target=np.load('target_2.npy')
train_data=data[:120]
train_target=target[:120]

test_data=data[120:]
test_target=target[120:]

from keras.models import Sequential
from keras.layers import LSTM,Dense,Dropout

model=Sequential()

model.add(LSTM(units=172,return_sequences=True,input_shape=(data.shape[1:])))
model.add(Dropout(0.2))

model.add(LSTM(units=940,return_sequences=True))
model.add(Dropout(0.2))

model.add(LSTM(units=2510,return_sequences=True))
model.add(Dropout(0.2))

model.add(LSTM(units=50,return_sequences=False))
model.add(Dropout(0.2))

model.add(Dense(units=1,activation='linear'))

model.compile(loss='mse',optimizer='adam',metrics=['accuracy'])
model.load_weights('AirlineLSTMweights.h5')

result=model.predict(test_data)
print(result)


scaler=MinMaxScaler(feature_range=(0,1))
scaler.inverse_transform(result)

NotFittedError:此MinMaxScaler实例尚未安装。使用此方法之前,请使用适当的参数调用“ fit”。

有人可以在这里帮助我吗?

my print(results) = [[0.6232013 ]
 [0.67273337]
 [0.7892405 ]

我已经将我的数据转换为0到1之间并通过LSTM NN进行馈送。结果也保持在0到1之间,并且要获得正确的输出,我需要将其转换回与原始数据相同的输出...

python tensorflow machine-learning keras lstm
1个回答
0
投票

这就是错误的意思。当使用scikit-learn模块时,它们通常具有fit(),transform()或在分类器的情况下也具有predict()方法。在根据您的情况创建类似MinMaxScaler()的类的实例后,您需要将其适合一些数据,只需调用其fit方法并将您的训练示例作为参数传递即可。在这里的代码中,您创建了一个实例,但是它不知道您的数据是什么用于更新其内部变量(在调用其transform或inverse_transform时使用)。

© www.soinside.com 2019 - 2024. All rights reserved.