使用缺失的数字数据进行预测

数据挖掘 预言 缺失数据
2022-03-10 02:06:16

我不太了解如何处理丢失的数据。当数据是分类数据时,它似乎并不算太​​糟糕,如果我对其进行一次热编码而不丢弃任何实际类别,则模型中会考虑丢失的数据,因为所有相关的一次热列都为零。但是对于数字数据,我不喜欢我理解的选项:省略整个观察,或估算一个值。还有其他选择吗?

我倾向于省略数据(在我正在处理的数据中,它会导致约 2% 的数据丢失),但如果您在数据丢失时尝试做出预测,这将无济于事,而我不能找到很多有用的讨论来解决问题的这方面(主要是围绕训练模型)。

我想您可以训练多个模型来处理缺失特征的所有排列,并选择与可用预测数据匹配的模型?但这似乎太笨重和耗时,不实用。(我现在正在处理的数据集是人工的;它有 100 个特征,其中 96 个是数字的,所有这些 [训练集和预测集] 都有 2-20 个缺失值。)

Fwiw,如果我必须估算数据,我的计划是使用 98% 的完整训练/预测数据进行回归,预测每个缺失值的均值,然后根据方差/CI 对其进行随机化。

我想这可以归结为两个问题/要求:

1)如上面粗体部分省略/插补:还有其他选择吗?

2)鉴于预测必须基于缺失的数据,关于如何进行的一般建议?

-- 编辑/添加 20 年 3 月 15 日 -- 我特别想知道在实施不处理缺失值的回归等模型时,还有哪些其他选项,以及什么被认为是最佳实践?

1个回答

2个问题。

  1. 是的,有一些算法在内部处理它。例如,lightGBM 会在拆分过程中忽略缺失值,然后将它们分配给损失最大的一方在此处查看第 3.2 节或例如Catboost

  2. 尝试尽可能多地保存/估算信息,如果缺失值太多 (30%+) 而不是删除列。在插补时注入噪音会造成更大的伤害。(注意 30% 是基于经验的近似值,一些数据集需要更少或更多)