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

数据挖掘 Python 神经网络 预测建模
2021-10-10 03:32:28

我用 Python 编写了一个神经网络预测模型。

我的数据有几个输入和两个输出。为了使其工作,我必须对数据的每一列进行标准化以获得良好的预测结果。

但是,我有一个问题。我使用相同的输入多次运行预测模型以获得它的平均值和标准差。但显然,这些也归一化为 0-1。在测试数据上,我知道最小值和最大值,所以我可以对它们进行非规范化。在预测值上,我不能给出最小和最大实际值。

你如何解决这类问题,如果你不能,是否有任何其他体面的预测技术而不需要标准化?

2个回答

使用您的训练数据统计数据进行标准化。保存使用的值(例如每个特征的平均值和标准差),将它们视为模型的一部分。一旦您使用这些值来转换输入,它们就会成为模型中的固定平移/比例因子。

根据需要使用相同的值来规范化测试数据或新输入。您不需要为新数据计算新的标准化常数。事实上,这样做很可能会降低模型的有效性。

如果您需要将输出值缩放到模型产生的范围内,同样的原则也适用于解释输出值。根据您的训练数据进行扩展。

为什么不使用相同的统计数据对结果进行非规范化?如果测试数据足以训练神经网络,那么为什么它的统计数据不足以对结果进行非规范化呢?

但是,我建议不要使用 min 和 max 作为比例因子。最小值和最大值可能非常敏感。我建议使用均值和标准差的稳健估计来进行归一化。