我有一个关于机器学习的数据预处理的问题。特别是转换数据,使其具有零均值和单位方差。我已经将我的数据分成两个数据集(我知道我应该有三个数据集,但为了简单起见,假设我有两个数据集)。我应该转换我的训练数据集,使整个训练数据集具有单位方差和零均值,然后在测试模型时转换每个测试输入向量,使每个测试输入向量呈现单位方差和零均值,还是将整个数据集(训练和测试)转换为单位变量和零均值?我的信念是,我应该这样做,这样我就不会在测试数据集中引入一种卑鄙的偏见。但我不是专家,所以我的问题。
发布于 2017-02-21 16:44:32
只应在训练集上安装预处理器,然后在测试集上使用均值和方差变压器。在火车和测试上计算这些统计数据会泄露一些关于测试集的信息。
让我将您链接到深度学习的好航向,并向您展示引文(都来自安德烈杰·卡萨帕):
常见的陷阱。关于预处理的一个重要要点是,任何预处理统计数据(例如,数据平均值)必须只计算在培训数据上,然后应用于验证/测试数据。例如,计算平均值并从整个数据集的每一幅图像中减去它,然后将数据分割成train/val/test拆分将是一个错误。相反,必须仅在训练数据上计算平均值,然后从所有的分裂(train/val/test)中平均减去。
https://stackoverflow.com/questions/42369850
复制相似问题