你的数据集有缺失值?不要做任何处理!

你的数据集缺失值如何处理?这里有几个不容忽视的方法!

模型可以比插补方法更有效地处理箱外缺失值。实证证明

[作者提供的图片]

在真实数据集中缺失值非常常见。经过时间的积累,已经提出了许多处理该问题的方法。通常情况下,这些方法要么是删除包含缺失值的数据,要么是使用某些技术对其进行插补。

在本文中,我将测试第三种选择:

什么都不做。

实际上,对于表格数据集(即XGBoost、LightGBM和CatBoost),最好的模型可以原生地处理缺失值。所以,我要尝试回答的问题是:

这些模型是否可以有效地处理缺失值,还是我们需要先进行一次插补以获得更好的结果?

谁说我们应该关心空值?

人们普遍认为我们必须对缺失值采取措施。例如,我问ChatGPT,如果我的数据集包含缺失值,该怎么做,它建议了10种不同的方法来摆脱它们(您可以在这里阅读完整答案)。

但是这种观点来源于哪里呢?

通常情况下,这些观点源于历史模型,尤其是线性回归模型。这也是本例的情况。让我们看看原因。

假设我们有以下数据集:

包含缺失值的数据集。[作者提供的图片]

如果我们尝试对这些特征进行线性回归训练,会出现错误。实际上,为了能够进行预测,线性回归需要通过一个数字系数与每个特征相乘。如果一个或多个特征缺失,就无法对该行进行预测。

这就是为什么出现了许多插补方法。例如,最简单的可能性之一是用特征的平均值替换缺失值。