机器学习中一个常见的良好实践是对预测变量进行特征归一化或数据标准化,就是这样,将数据居中减去均值并将其归一化除以方差(或标准差)。为了自我控制,据我所知,我们这样做是为了实现两个主要目标:
- 为了数值稳定性,避免使用特别小的模型权重。
- 确保优化算法(例如共轭梯度)的快速收敛,以便一个预测器维度相对于其他维度的大幅度不会导致收敛缓慢。
我们通常将数据分成训练集、验证集和测试集。在文献中,我们通常看到,为了进行特征归一化,他们在整个预测变量集上取均值和方差(或标准差)。我在这里看到的一个大缺陷是,如果你这样做,你实际上是在将未来信息引入训练预测变量,即包含在均值和方差中的未来信息。
因此,我对训练数据进行特征归一化并保存均值和方差。然后,我使用训练均值和方差将特征归一化应用于验证和测试数据集的预测变量。这有什么根本缺陷吗?谁能推荐一个更好的选择?