我有一个数据集,其中包含两个级别 Male(M) 和 Female(F) 的变量 GENDER 有很多 Missing values 。我如何处理缺失值?处理这些缺失值的不同方法是什么。任何帮助,将不胜感激。
2 回答
有几种技术可以估计缺失值。我一直在为 Uni 的一个项目写一篇关于这种方法的论文。
我将简要解释 5 种常用的缺失数据插补技术。在下文中,我们将考虑一个数据集,其中每一行都是一个模式(或观察),每一列是一个特征(或属性),假设我们要“修复”一个给定的模式,该模式在其第j个特征中具有缺失值(位置)。
- 图案去除。
如果这种模式至少有一个缺失值,则从数据集中删除模式。
但是,如果存在大量缺失值的模式,我不建议使用这种方法,因为数据集中的模式数量将急剧减少,并且训练阶段不会减弱。 - 均值/众数方法。如果模式在位置j
有缺失值,则取第j列的平均值(如果第j个属性是连续的)或模式(如果第j个属性是分类的),并在模式的第j个中替换这种平均值/模式位置。显然,在平均值/模式评估中,您应该只考虑列j中的非缺失值。 - 条件均值/众数。
如果您有标签(即监督学习),您可以考虑以前的方法,但要考虑到,在均值/模式评估中,只有来自列j的(非缺失)元素属于与标签具有相同标签的模式您正在尝试修复的模式。这实质上改进了前面的方法,因为您不考虑属于不同类的模式的值。 - 热甲板。
给定一个特定的差异度量,您可以测量要修复的模式与要估算的属性中没有缺失值的所有其他模式之间的差异(在我们的例子中是第j个属性)。从最相似的模式中获取第j个特征,并将其替换回要修复的模式的第j个位置。 - K-最近邻。
这与 Hot-decking 类似,但不考虑最相似的模式,您可以考虑在我们的第j个特征中没有缺失值的K个最相似的模式。然后考虑这些K模式的第j个特征中最频繁的项目(模式)。
K-Nearest Neighbors的K值可以通过交叉验证找到,可以先验设置,也可以使用经验法则值(K = 实例数的平方根)。
差异度量实际上取决于您,但常见的选择是 HEOM(异构欧几里得重叠度量),可在此处找到(第 2.3 节)。这种差异度量在具有大量缺失值的数据集中非常有效,因为它也允许您处理具有缺失值的模式(显然不在您要估计的特征中)。
丢弃要估算的特征中缺失值的模式确实很重要:如果您的相异性度量返回了特征j中也缺失值的最相似的模式,那么您基本上是在用另一个缺失值替换缺失值。无意义。此示例适用于 Hot-decking,但您甚至可以将此类概念扩展到KK-最近邻中最相似的模式(即,K个最相似模式的第j个特征中最常见的项目也是缺失值的不幸情况)。
这在很大程度上取决于具体情况。但是,一些通用方法是:
删除缺少某些数据的行。
估算缺失值。基本上,您可以将性别列视为您必须预测的内容(可能使用其他列)。使用具有所有值的行训练您的预测器,并预测缺失的行。
创建第三类“缺失”,并让机器学习算法处理它。