StandardScaler 对 TEST 数据进行转换后 ML 模型的性能

Performance of ML model after StandardScaler transform on TEST data

概述:我是 ML 新手,正在学习 sklearn 预处理。我发现当我们对 TEST 数据使用 sklearn 预处理转换时,mean 不会是 0 并且 std 不会是 1(原因是我们正在使用 TRAIN 数据 mean/std 来标准化测试数据)。

我的问题:如果测试数据以这种方式标准化(未正确标准化为均值 0 和标准差 1 的高斯正态分布),那么这会影响 ML 算法的预测吗?我的理解是 ML 预测的准确性较低,因为我们为 ML 模型提供了错误标准化的数据。

Code screenshot for mean and std

这应该告诉您的是,您的训练集和测试集可能具有不同的分布。如果您的训练集不能代表全球人口(此处由 TEST 数据代表),那么该模型将无法很好地概括。

如果您的测试数据不是以 1 个标准为中心且以零为中心,那完全没问题。这种转换的目的是让所有数据都在同一范围内,否则许多算法会错误地(相对于用户意图)更新模型。通过应用此转换,您表示 "all features equally important".

没有"incorrectly standardized data"这样的东西(你描述的方式),只有训练数据不具有代表性。