1

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

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

mean 和 std 的代码截图

4

1 回答 1

2

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

如果您的测试数据不是以 1 标准为中心以零为中心,那是完全可以的。这种转换的目的是获取相同范围内的所有数据,否则许多算法会错误地(相对于用户意图)更新模型。通过应用此转换,您是在说“所有功能都同等重要”。

没有像“不正确的标准化数据”(您描述的方式)这样的东西,只有训练数据不具有代表性。

于 2020-02-20T18:32:45.847 回答