【问题标题】:Keras: Does model.predict() require normalized data if I train the model with normalized data?Keras:如果我用标准化数据训练模型,model.predict() 是否需要标准化数据?
【发布时间】:2021-09-08 03:43:33
【问题描述】:

在使用 Keras 完成模型训练后,我尝试使用 Keras 的 model.predict() 来测试新输入的模型。

当我训练模型时,我使用 Scikit Learn 的 MinMaxScaler() 对训练数据进行了标准化。

在使用model.predict() 时,我是否也需要对数据进行规范化?如果是这样,我该怎么做?

【问题讨论】:

  • 您需要对您愿意预测的数据应用相同的预处理步骤。

标签: python tensorflow machine-learning keras scikit-learn


【解决方案1】:

是的。你需要。因为您的模型已从具有特定规模的数据中学到的。因此,最好将数据转换为与模型工作相同的规模,然后让它进行预测。

例如,您可以使用Scikitlearn库正常化和标准数据:

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))
         )

【讨论】:

    猜你喜欢
    • 2021-03-24
    • 2017-06-26
    • 1970-01-01
    • 2016-12-11
    • 2017-02-17
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多