如何缩放训练模型的输入数据?

Posted

技术标签:

【中文标题】如何缩放训练模型的输入数据?【英文标题】:How to scale the input data for trained model? 【发布时间】:2020-02-08 04:04:03 【问题描述】:

我有一个训练有素的模型,它使用回归来预测房价。它在标准化数据集(来自 sklearn 的 StandatdScaler)上进行了训练。我现在如何在不同的 python 程序中缩放我的模型输入(一个例子)?我不能在输入上使用 StandardScaler,因为所有功能都会减少到 0(MinMaxScaler 也不起作用,还尝试从训练脚本保存和加载缩放器 - 不起作用)。那么,如何扩展我的输入以使特征不会为 0,从而使模型能够正确预测价格?

【问题讨论】:

简单的回答:你不能。至少在没有其余数据的情况下不会。在将数据拆分为训练/测试/验证集等之前始终使用缩放。您必须将StandardScaler 应用于您的训练数据和单个示例 是的,所以我的问题的答案是使用 fit 然后在 StandardScaler 中进行转换,而不是立即使用 fit_transform 【参考方案1】:

你所描述的用词自相矛盾。缩放是指数据范围;单个数据没有“范围”;这是一个重点。

似乎要问的是如何缩放输入数据以适应您在训练时所做的翻译。这里的答案再次简单明了:您必须使用训练时应用的相同翻译功能。标准做法是恢复模型的摄取(即反转该缩放函数);如果您没有这样做,并且您没有记下该函数的系数,那么您就没有将相同的翻译应用于未来输入所需的信息——简而言之,您的训练模型并不是特别有用.

可以尝试通过在原始数据集上运行缩放函数来恢复系数,确保输出结果函数。然后您可以将该函数应用于您的输入示例。

【讨论】:

以上是关于如何缩放训练模型的输入数据?的主要内容,如果未能解决你的问题,请参考以下文章

具有更大输入图像尺寸的 Caffe 预训练模型

Tensorflow:如何将预训练模型已经嵌入的数据输入到 LSTM 模型中?

如何缩放 SVM 分类的输入特征?

如何使用 tf.estimator 导入保存的 Tensorflow 模型训练并预测输入数据

在训练 LSTM NN 之前,我需要做哪些数据重新缩放预处理?

如何将数据输入到神经网络中