有必要缺失数据的监督学习

数据挖掘 机器学习
2022-03-09 09:10:35

许多关于监督(和无监督)学习中缺失数据的讨论涉及各种插补方法,如平均值或 EM。但在某些情况下,作为数据生成过程的必然结果,数据会丢失。

例如,假设我正在尝试预测学生的成绩,而我要分析的输入之一是学生兄弟姐妹的平均成绩。如果某个学生是独生子女,那么该值将丢失,不是因为我们未能收集数据,而是因为逻辑上没有数据可收集。这与学生有兄弟姐妹但我们无法找到他们的成绩的情况不同。

其他例子比比皆是:假设我们在大学招生中,我们想要包括学生的 AP 考试成绩,但并非所有学生都参加了 AP 考试。或者我们正在查看社交网络数据,但并非所有受试者都有 facebook 和/或 twitter 帐户。

这些数据丢失了,但它们肯定不是随机丢失的。许多算法,例如 scikit-learn 中的所有监督学习包,都只是要求数据集中完全没有缺失值。

人们过去是如何处理这个问题的,有哪些现成的解决方案?例如,我相信 R 中的梯度提升算法使用具有三个可能分支的树:左、右和缺失。还有其他选择吗?

1个回答

不久前我解决了一个类似的问题。令 X 为具有缺失值的数值变量。首先,我们将值 0 分配给那些缺少值的实例。然后,我们向模型中添加一个新的分类变量 X_missing,其域为 {True,False}。我们获得了一个具有混合数值/分类变量的数据模型。然后,您可以应用梯度下降来从这些变量训练回归模型。