标准化后如何在新数据上使用保存的神经网络

How to use a saved neural network on new data after standardization

我已经使用 TensorFlow 和 Keras 构建并训练了一个神经网络,它非常适合我的数据。 在使用数据之前,我使用 sklearn 中的 StandardScale() 对其进行了标准化。 我 fit_transform() 训练数据,只 transform() 测试和验证数据。

最后,我保存了我的模型。

现在我想将该模型用于新数据。 我想我也需要 transform() 这个数据,但是我该怎么做呢?

我的数据已使用训练数据集的 fit_transform() 函数的所有参数进行了转换。 如果我在我的新数据中使用 fit_transform() ,我会得到比用验证和测试数据相同的方式转换它们更糟糕的结果。

有没有办法存储来自 fit_transform() 函数的信息,以便稍后在我加载保存的模型时使用它?所以我会得到一个新的数据集,转换喜欢测试和验证数据?

进行预测时,您不应使用 fit_transform,因为这会覆盖您之前安装的定标器。请注意,fit_transformfit()transform() 两种方法的组合,如果您希望达到相同的效果,您可以单独 运行。

因此,要在不改变它的情况下使用适合的缩放器,只需使用 transform()

要保存它,您可以随时使用泡菜:

import pickle 

with open(os.path.join(<your_path>, 'scaler.pkl'), 'wb') as output:
     pickle.dump(<your_scaler>, output)