我想在训练分类器之前删除高度相关的特征。我想知道是否应该在拆分测试和训练集之前或之后执行此操作。我没有立即看到之前这样做会如何将测试信息泄漏到训练集中,但我很可能会遗漏一些东西。我还担心数据的拆分会影响特征之间相关性的分析,尽管在实践中这种可能性很低。任何人有任何见解?谢谢!
在拆分测试和训练集之前或之后删除相关特征?
数据挖掘
分类
机器学习模型
预处理
相关性
2022-02-22 14:17:33
1个回答
根据监督 ML 的原则,任何影响模型的决策都应仅使用训练集做出,以避免数据泄漏。遵循这一原则要求始终首先完成训练/测试拆分。
很多时候,这个决定似乎很小,几乎没有机会导致数据泄露,就像你的情况一样。让我们的生活更轻松并使用整个数据进行这样的预处理是很诱人的。但是最好尽可能严格地遵循这个原则,不是因为数据泄漏的影响会很大,而是因为一旦发生就无法检测到:当它发生时,数据泄漏意味着测试中的性能set 是有偏差的(高估),根本无法知道有多少(当然,除了收集一个新的测试集)。
您对数据拆分可能会影响相关性分析的担忧是该问题的一个很好的例子:假设确实会有差异。这意味着存在数据泄漏,因为特征直接取决于测试数据。在这种情况下,对测试集的评估很可能是有偏差的。
解释相同想法的另一种方法是:如果某件事在训练集中偶然发生或没有发生,那么重要的是看看模型是否能够专注于真实模式并忽略噪声。获得这个问题的可靠答案的唯一方法是模型中的任何内容都取决于测试集。