重要特征有很多缺失值的问题

数据挖掘 机器学习 特征工程
2022-03-09 00:40:31

我的一个项目面临着两难境地。其中一个变量(数值)没有足够的数据,即几乎 99% 的数据丢失。然而,在与领域专家交谈后,似乎特定变量对我们试图解决的问题(模型)很重要。最初,我想将其转换为二进制变量,这样 1 将表示该变量在该位置有一个值,而 0 将表示缺失值。但是,我们似乎在这样做时丢失了信息。

任何人都可以建议任何前进的方式吗?

我想到的一个想法是使用分位数离散化变量,但是如何处理缺失值呢?

另一种方法是在模型中同时包含二进制变量和原始变量,用一些估算值替换缺失值。但我无法得出任何合乎逻辑的推理来说明为什么或为什么不这样做。

对此事的任何了解都会非常有帮助(当然除了完全放弃它)。

谢谢。

1个回答

处理这种缺失值问题的最佳方法是什么,只能凭经验回答?它将根据您选择的数据集和算法而有所不同。但这里有一些你可以尝试的事情。

估算缺失值

  • 估算均值的缺失值
  • 用特殊值估算缺失值。例如,如果变量只取正值,那么您可以将缺失值编码为 0。

尝试预测缺失值

  • 使用其他变量来预测缺失值。(但是,如果您实际上可以很好地预测其余值中的缺失值,那么这可能表明您可以完全删除此变量)

另一种方法是在模型中同时包含二进制变量和原始变量,用一些估算值替换缺失值。

这种方法本质上没有任何问题。你当然应该尝试。当您丢失 99% 的值时,此方法的一个可能缺点是,该原始变量将与派生is_missing变量高度相关。这可能会有问题,具体取决于您使用的特定分类算法。例如:

  • 众所周知,多重共线性对于线性回归的任何变体都是一个巨大的问题
  • 支持向量机也有类似的问题 [参考]
  • 朴素贝叶斯假设特征之间是独立的。这甚至更强。
  • is_missing变量是一个分类变量,这使得在 K-Nearest-Neighbour 算法中定义距离度量变得很棘手