训练集(不同形式)和测试集之间的预处理(中心、尺度、估算)——什么是好的方法?

数据挖掘 机器学习 数据挖掘 数据集 加工 特征缩放
2022-02-09 20:10:31

我目前正在研究具有大型训练集的多类分类问题。但是,它有一些特定的特性,促使我尝试使用它,导致训练集的版本很少(由于重新采样、删除观察等)。

我想对数据进行预处理,即缩放、居中和估算(虽然没有太多估算)值。这是我开始感到困惑的地方。

我被告知您应该始终以与预处理训练集相同的方式预处理测试集,即(用于缩放和居中)以测量训练集的平均值和标准偏差并应用这些值到测试集。这在我看来是合理的。

但是,如果您缩小/重新采样了训练集,该怎么办?是否应该关注实际为模型提供数据的特征(这就是 R 的插入符号包中的“训练”功能所建议的,因为您可以将预处理对象直接放在那里)并将这些应用于测试集,或者也许应该捕获数据的真实特征(来自整个未触及的训练集)并应用它们?如果第二种选择更好,也许值得通过将训练和测试数据合并在一起来捕获数据的特征,以便进行预处理步骤以获得尽可能准确的估计(我实际上从未听说过任何人虽然这样做)?

我知道我可以简单地测试这里指定的一些方法,我肯定会,但是有没有基于理论或你的直觉/经验的关于如何解决这个问题的建议?

我还有一个额外的可选问题。在任何情况下,居中但不缩放数据(或相反)是否有意义?任何人都可以举出任何例子说明这种方法是合理的吗?

非常感谢您提前。

1个回答

我是这样想的:训练集和测试集都是未知人群的样本。我们假设训练集代表了我们正在研究的人群。也就是说,我们对训练集所做的任何转换都是我们将对整体人口所做的转换。此外,无论我们使用什么训练数据子集,我们都假设这个子集代表训练集,代表总体。

因此,在回答您的第一个问题时,只要您认为它仍然代表该人群,就可以使用缩小/重新设计的培训。那是假设您的原始训练集首先捕获了“真实特征”:)

至于你的第二个问题,不要合并训练和测试集。测试集可以作为未来的未知观察。如果您将这些构建到模型中,那么您将不知道模型是否错误,因为您用完了要测试它的数据。