神经网络中预测数据的非规范化

时间:2015-10-01 12:53:50

标签: python machine-learning neural-network normalization

在神经网络中,用于训练数据的样本数量为5000,在为训练提供数据之前,使用公式对其进行标准化

     y - mean(y)
y' = -----------
      stdev(y)

现在我想在获得预测输出后对数据进行去标准化。通常,为了预测,使用2000个样本的测试数据数据。为了去标准化,使用以下公式

y = y' * stdev(y) + mean(y)

此方法取自以下主题 [How to denormalise (de-standardise) neural net predictions after normalising input data

有人可以解释一下,如果使用预测测试数据(2000 * 2100),如何使用标准化训练数据(5000 * 2100)中的相同均值和标准偏差来对预测数据进行去标准化,两个计数都不同。

1 个答案:

答案 0 :(得分:3)

非规范化方程是简单的代数:它与归一化方程式相同,但是对y而不是y'求解。该功能是反转规范化过程,恢复原始数据的“形状”;这就是为什么你必须使用原始的stdev和意思。

归一化是将数据移动到0(使用均值),然后将分布压缩到标准正态曲线(对于1.0的新stdev)的过程。要返回原始形状,您必须取消移动并取消与原始分布相同的相同金额。

请注意,我们预计预测数据的平均值为0,stdev值约为1.0(由于集中趋势定理,变化会有一些变化)。你的担心并不愚蠢:我们确实为stdev提供了不同的人口数量。