【问题标题】:Machine Learning data preprocessing [closed]机器学习数据预处理
【发布时间】:2017-02-21 14:19:44
【问题描述】:

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

【问题讨论】:

  • Afaik,人们将标准化应用于整个数据集。但是我问了一个类似的问题here,因为在在线培训场景中并不是那么简单。

标签: machine-learning artificial-intelligence data-processing


【解决方案1】:

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

让我把你链接到一个关于深度学习的good course 并给你看一个引用(都来自Andrej Karpathy):

常见的陷阱。关于预处理的重要一点是,任何预处理统计信息(例如数据均值)只能在训练数据上计算,然后应用于验证/测试数据。例如。计算平均值并从整个数据集中的每个图像中减去它,然后将数据拆分为训练/验证/测试拆分是错误的。相反,平均值必须仅在训练数据上计算,然后从所有拆分(train/val/test)中平均减去。

【讨论】:

  • 太棒了!将通读它。当我在训练和验证数据分离之前标准化的数据集上训练的模型在测试集预测上输出令人不安的 98% 准确度时,我认为泄漏是真实的。这真是太好了,令人难以置信。
猜你喜欢
  • 2018-08-18
  • 2020-06-15
  • 2015-08-18
  • 2017-12-15
  • 2014-02-17
  • 1970-01-01
  • 2020-09-07
  • 2018-03-07
  • 2018-03-11
相关资源
最近更新 更多