如果我们的训练集中没有缺失值,我们是否应该在看不见的测试集中容纳缺失值?

数据挖掘 机器学习 数据清理 预处理
2021-09-24 14:00:51

我的训练数据没有缺失值。我不确定我是否应该在训练集上进行插补,以便我可以容纳测试集上可能的缺失值,因为测试集在训练期间被“锁定”。我应该查看测试数据以查看是否存在缺失值,还是应该对完整训练集的所有特征进行插补?

2个回答

首先,我们必须了解一个常见的统计术语,称为population给定一个人口X,arandom sample被绘制(在理想条件下)。现在假设你被要求基于这个随机样本建立一个预测模型。因此,您将样本分成训练集、测试集和验证集。然后你开始在训练集上构建模型。您从最初的数据清理活动开始,您会发现其中没有丢失的数据。

有了这个简短的背景,现在回答你的问题实际上迫使我宁愿问你一个问题;

Q. Did you collect the data or was it given to you? 

如果您对我的 Q 前一部分的回答是,yes那么无论如何都可以对数据做任何您想做的事情。如果您对我的 Q 后半部分的回答是,yes那么您不应该尝试污染它。您也不应该尝试窥视保留数据集,因为这样会在潜意识中破坏您建立的预测模型。

最后,记住总体和样本的概念。它掌握着钥匙。构建您的模型,使其考虑所有初始数据预处理活动。如果特定步骤不能满足数据集,则可以编写代码来避免它

编辑 1

OP 建议将数据集提供给他们的基础,我正在进一步修改答案;

我认为您对人口数据和新数据感到困惑。根据我的回答,模型是基于人口数据建立的。新数据应具有与人口数据相同的属性和属性。但是,如果由于您不知道的某种原因,新数据有缺失值但原始数据没有,那么有几个选项,即;

一个。确定缺失的数据模式,

一世。如果它完全随机缺失(MCAR),则意味着数据的缺失与任何值、观察到的或缺失的数据之间没有关系。换言之,缺失数据的参与者和拥有完整数据的参与者之间不存在系统差异。在这些情况下,缺失的数据会降低研究的可分析人群,从而降低统计功效,但不会引入偏差:当数据为 MCAR 时,剩余的数据可被视为感兴趣的完整数据集的简单随机样本.

ii. 随机缺失(MAR)。当数据为 MAR 时,数据缺失的事实与观察到的数据系统相关,但与未观察到的数据无关。

iii. 非随机缺失 (MNAR)。当数据为 MNAR 时,数据缺失的事实与未观察到的数据系统地相关,即缺失与研究人员未测量的事件或因素有关。

一旦您确定了缺失的性质,那么您应该确定是否可以估算缺失的数据。

总之,如果新数据有缺失值,那么您可以处理它们或删除它们。这是你的选择。我的建议是走中间道路,您可以在其中构建 2 个模型;第一个模型没有缺失数据,第二个模型有估算的缺失数据。评估和验证模型性能并选择与所需业务/研究结果密切匹配的模型。

如果训练数据(~80%)没有任何缺失的记录,并且您期望测试数据中的记录缺失(~20%)。
在这些情况下可能会发生这种情况(也可能是其他情况) -

计数中只有很少的缺失记录-
那么这些很可能完全是随机的,然后您可以删除记录或填充训练数据的平均值/中位数

一个好数字计数中的缺失记录-
这意味着训练集没有正确表示数据集。那么无论如何,您的模型将难以处理这些测试数据,您可能必须创建一个更好的训练/测试集。
此外,缺失属于其他两个类别的可能性很高。所以你可以据此推算。