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

Vin*_*ime 9 python machine-learning normalization neural-network

在神经网络中,用于训练数据的样本数为 5000,在训练数据之前使用公式进行归一化

     y - mean(y)
y' = -----------
      stdev(y)
Run Code Online (Sandbox Code Playgroud)

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

y = y' * stdev(y) + mean(y)
Run Code Online (Sandbox Code Playgroud)

这种方法取自以下线程 [ How to denormalise (de-standardise) neural net predictions after normalizing input data

任何人都可以解释我如何使用相同的均值和标准差来规范化训练数据(5000 * 2100)可以用于对预测数据进行去规范化,正如您所知的预测测试数据(2000 * 2100)使用,两个计数是不同的。

Pru*_*une 7

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

归一化是将数据以 0 为中心(使用平均值),然后将分布压缩为标准正态曲线(对于新的 stdev 为 1.0)的过程。要恢复原始形状,您必须取消移动和取消挤压原始分布相同的数量。

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