如何缩放训练模型的输入数据?
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】:
你所描述的用词自相矛盾。缩放是指数据范围;单个数据没有“范围”;这是一个重点。
您似乎要问的是如何缩放输入数据以适应您在训练时所做的翻译。这里的答案再次简单明了:您必须使用训练时应用的相同翻译功能。标准做法是恢复模型的摄取(即反转该缩放函数);如果您没有这样做,并且您没有记下该函数的系数,那么您就没有将相同的翻译应用于未来输入所需的信息——简而言之,您的训练模型并不是特别有用.
您可以尝试通过在原始数据集上运行缩放函数来恢复系数,确保输出结果函数。然后您可以将该函数应用于您的输入示例。
【讨论】:
以上是关于如何缩放训练模型的输入数据?的主要内容,如果未能解决你的问题,请参考以下文章
Tensorflow:如何将预训练模型已经嵌入的数据输入到 LSTM 模型中?
如何使用 tf.estimator 导入保存的 Tensorflow 模型训练并预测输入数据