机器学习数据预处理

Machine Learning data preprocessing

我对机器学习的数据预处理有疑问。专门转换数据,使其具有零均值和单位方差。 我已将我的数据分成两个数据集(我知道我应该有三个,但为了简单起见,我们只说我有两个)。我是否应该转换我的训练数据集,使整个训练数据集具有单位方差和零均值,然后在测试模型时转换每个测试输入向量,以便每个特定的测试输入向量呈现单位方差和零均值,或者我应该只转换整个数据集(训练和测试)在一起,以便整个事物呈现单位变量和零均值?我的信念是,我应该这样做,这样我就不会在测试数据集中引入大量可鄙的偏差。但我不是专家,所以我的问题。

只应在训练集上拟合预处理器,然后在测试集上使用均值和方差变换器。计算这些关于训练和测试的统计数据会泄露一些关于测试集的信息。

让我link给你一个good course on Deep-Learning and show you a citation (both from Andrej Karpathy):

Common pitfall. An important point to make about the preprocessing is that any preprocessing statistics (e.g. the data mean) must only be computed on the training data, and then applied to the validation / test data. E.g. computing the mean and subtracting it from every image across the entire dataset and then splitting the data into train/val/test splits would be a mistake. Instead, the mean must be computed only over the training data and then subtracted equally from all splits (train/val/test).