Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Keras:将预测与标准化数据训练的模型一起使用?_Python_Keras - Fatal编程技术网

Python Keras:将预测与标准化数据训练的模型一起使用?

Python Keras:将预测与标准化数据训练的模型一起使用?,python,keras,Python,Keras,我正在Keras中创建一个深度神经网络,使用表格数据执行NN回归。最佳实践是规范化输入和输出序列。我还想使用predict函数为各种输入集提供模型输出的估计值。如果训练数据被规范化,我假设我还需要使用相同的缩放参数规范化predict数据集。最好的方法是什么?有没有一种方法可以自动标准化模型内的数据?没有最好的方法可以做到这一点(取决于问题),但最常见的方法是标准化列车和测试数据,使其具有平均值0和标准偏差1 是的,如果您将合理大小的批次输入到网络中,您可以使用自动规范化模型中的数据。这可能会产

我正在Keras中创建一个深度神经网络,使用表格数据执行NN回归。最佳实践是规范化输入和输出序列。我还想使用
predict
函数为各种输入集提供模型输出的估计值。如果训练数据被规范化,我假设我还需要使用相同的缩放参数规范化
predict
数据集。最好的方法是什么?有没有一种方法可以自动标准化模型内的数据?

没有最好的方法可以做到这一点(取决于问题),但最常见的方法是标准化列车和测试数据,使其具有平均值0和标准偏差1


是的,如果您将合理大小的批次输入到网络中,您可以使用自动规范化模型中的数据。这可能会产生与数据增强类似的效果,因为网络在训练期间看到的信号很少重复(例如,信号现在取决于整个批次)。在Keras中,这可以通过在输入层之后添加一个层来实现。

我通常喜欢使用sklearn,它确实保存了参数,并允许您将其“逆变换”回原始值。对于预测,您将通过逆_变换函数发送它们,以获得它们的实际预测值

这里有一个工作示例供您参考。定标器的参数可以很容易地调整

from sklearn.preprocessing import MinMaxScaler, StandardScaler
import numpy as np

example = np.array([0., 1., 1., 0., 2., 3., 4., 4., 5.]).reshape(-1, 1)

# MinMax Scaling Example
scaler = MinMaxScaler(feature_range=(0.01, 0.99))
min_max_scaled = scaler.fit_transform(example)
min_max_orig = scaler.inverse_transform(min_max_scaled)

# Normalizing Example  (mean 0, std 1)
norm = StandardScaler()
normalized = norm.fit_transform(example)
normalized_orig = norm.inverse_transform(normalized)

这两个答案都很有帮助@chris这看起来是我将要使用的解决方案。除了规范化输入之外,我建议使用批处理规范化