我已经在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之间,并且要获得正确的输出,我需要将其转换回与原始数据相同的输出...
这就是错误的意思。当使用scikit-learn模块时,它们通常具有fit(),transform()或在分类器的情况下也具有predict()方法。在根据您的情况创建类似MinMaxScaler()的类的实例后,您需要将其适合一些数据,只需调用其fit方法并将您的训练示例作为参数传递即可。在这里的代码中,您创建了一个实例,但是它不知道您的数据是什么用于更新其内部变量(在调用其transform或inverse_transform时使用)。