机器学习数据预处理

我有一个关于机器学习数据预处理的问题。具体来说,是关于如何转换数据,使其具有零均值和单位方差。我已经将数据分成了两个数据集(我知道应该有三个,但为了简化起见,我们假设只有两个)。我应该转换我的训练数据集,使整个训练数据集具有单位方差和零均值,然后在测试模型时转换每个测试输入向量,使每个特定的测试输入向量也具有单位方差和零均值,还是应该将整个数据集(训练和测试)一起转换,使整个数据集具有单位方差和零均值?我认为应该采用前者,这样就不会在测试数据集中引入过多的偏差。但我不是专家,所以才有此疑问。


回答:

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

让我给你链接一个关于深度学习的优秀课程,并展示一个引用(两者都来自@[隐藏人名]):

常见陷阱。关于预处理的一个重要点是,任何预处理统计数据(例如数据均值)都必须仅在训练数据上计算,然后应用于验证/测试数据。例如,在整个数据集上计算均值并从每张图像中减去,然后再将数据分成训练/验证/测试集是错误的。相反,均值必须仅在训练数据上计算,然后从所有分集(训练/验证/测试)中等量减去。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注