在使用Keras完成模型训练后,我正尝试使用Keras的model.predict()
,以便在新的输入上测试模型。
当我训练模型时,我用Scikit Learn的MinMaxScaler()
规范化了我的训练数据。
使用model.predict()
时,是否也需要规范化数据?如果是,我该怎么做?
是。你需要。因为你的模型是从特定规模的数据中学习的,所以最好将你的数据转换为与模型工作时相同的规模,然后让它进行预测。
例如,您可以使用Scikitslearn库来规范化和标准化数据:
x_scaler = StandardScaler()
x_train = x_scaler.fit_transform(x_train)
x_test = x_scaler.transform(x_test)
y_scaler = StandardScaler()
y_train = y_scaler.fit_transform(y_train)
y_test = y_scaler.transform(y_test)
然后,对于预测,您应该对训练数据集使用相同的归一化参数,然后反向缩放以返回到具有如下预测值的上一个缩放:
preds = y_scaler.inverse_transform(
model.predict(x_scaler.transform(pred_input))
)