我应该在再训练期间重新标准化训练数据吗?

问题描述

我正在运行一个简单的 keras 深度学习,我将训练一次,然后每个月在新数据可用时重新训练。

我的数据由货币值组成,所以我将首先使用 StandardScaler() 对我的数据进行标准化,但是一旦有新数据进入并且我想重新训练,我可以使用相同的 StandardScaler 对象吗?因为让我们假设新数据的最大数据点高于我当前的最大值,因此会改变整个数据集的标准化。

我应该重新标准化还是可以对新数据使用相同的标准化?

解决方法

根据我从您的问题中了解到的,当您使用新的训练数据时,输入数据将与用于计算标准化参数的数据不同。

在这种情况下,新数据输入可能超出您标准化的值范围。

但是为了有一个好的预测模型,训练数据和未来数据需要有接近的分布,否则,你的模型将无法按预期工作。

所以我认为最好重新标准化你的训练数据。并确保对训练与验证集分开进行标准化,即使用训练集的平均值和验证集,而不是验证集的平均值:

pip3 install --upgrade protobuf