问题描述
我已经使用 TensorFlow 和 Keras 构建并训练了一个神经网络,它非常适合我的数据。 在使用数据之前,我使用 sklearn 的 StandardScale() 对其进行了标准化。 我 fit_transform() 训练数据,仅 transform() 测试和验证数据。
最后,我保存了我的模型。
现在我想将模型用于新数据。 我想我也需要转换()这些数据,但我该怎么做?
我的数据使用来自训练数据集的 fit_transform() 函数的所有参数进行了转换。 如果我在我的新数据中使用 fit_transform(),我得到的结果会比使用验证和测试数据的相同方式转换它们更糟糕。
有没有办法存储 fit_transform() 函数中的信息,以便稍后在加载保存的模型时使用它?所以我会得到一个新的数据集,转换喜欢测试和验证数据?
解决方法
在进行预测时,您不应使用 fit_transform
,因为这会覆盖您之前拟合的定标器。请注意,fit_transform
是两个方法 fit()
和 transform()
的组合,如果您希望获得相同的效果,您可以单独运行它们。
因此,要在不改变它的情况下使用合适的缩放器,只需使用 transform()
。
要保存它,您可以随时使用pickle:
import pickle
with open(os.path.join(<your_path>,'scaler.pkl'),'wb') as output:
pickle.dump(<your_scaler>,output)