我正在关注“Aurelien Geron”的“Hands-On Machine Learning with Scikit-Learn & TensorFlow”一书。
以下是关于特征缩放的评论:-
与所有转换一样,重要的是仅将缩放器拟合到训练数据,而不是完整数据集(包括测试集)。只有这样你才能使用它们来转换训练集和测试集(以及新数据)
我对上述文字的理解是,特征缩放只在训练而不是在测试集上进行。这种解释正确吗?
如果是,那么不对测试数据集使用特征缩放的原因是什么?
我正在关注“Aurelien Geron”的“Hands-On Machine Learning with Scikit-Learn & TensorFlow”一书。
以下是关于特征缩放的评论:-
与所有转换一样,重要的是仅将缩放器拟合到训练数据,而不是完整数据集(包括测试集)。只有这样你才能使用它们来转换训练集和测试集(以及新数据)
我对上述文字的理解是,特征缩放只在训练而不是在测试集上进行。这种解释正确吗?
如果是,那么不对测试数据集使用特征缩放的原因是什么?
不完全的。您了解训练集的均值和标准差,然后:
这只是遵循一般原则:你学到的任何东西,都必须从模型的训练数据中学习。
要跟进对答案的评论 - 如果您在训练/测试拆分之前缩放数据,您将得到数据泄漏。在拆分之前计算整个数据集的均值/标准差将导致泄漏,因为每个数据集的数据将包含有关另一组数据的信息(通过均值/标准差值),并可能影响预测准确性和过拟合。
数据可能已经通过实验和/或使用的惯例自然地缩放(例如预测百分比)。其次,您将拥有一个包含两个变量的系统。因此,您不能轻易地将“非规模化”学习与规模化学习进行比较。