如何处理数据集中的缺失值?

数据挖掘 Python 分类 机器学习模型
2022-03-06 09:20:14

我正在尝试建立一个二元分类模型,该模型可以预测患者在住院结束时是否会感染某种疾病。我拥有的功能是不同标准医学测试的结果。但问题是几乎所有这些结果都有大约 60% - 80% 的缺失值,因为并非所有测试都与所有患者相关。那么我该如何处理缺失值,因为这里不能选择删除它们。此外,由于医学测试结果的范围从低到高,我是否应该根据标准医学测试范围将它们转换为具有高、低、中、空(对于缺失数据)的分类变量?

1个回答

如果特征是分类的,只需在 NA 中填写“缺失”作为新类别。如果它们是连续的,您可以尝试多种方法。作为起点,您可以简单地用平均值填充它们(或中值,如果您的异常值明显偏斜)并添加一个新的二进制特征,该特征将该值标记为原始特征中缺失的值。所以...

| 特征 A |
| --------- |
| 14 |
| 南 |
| 23 |

变成

| 特征 A | 特征 A 缺失 |
| --------- | ------------------ |
| 14 | 0 |
| 18.5 | 1 |
| 23 | 0 |

我从来没有为“最好”的做事方式找到一个硬性规定;我建议尝试上述方法并交叉验证您的模型,以确保其性能在可接受的范围内。

将连续变量离散化为高/中/低/缺失也可能会有所帮助;再次尝试并交叉验证,看看它是否能提高性能。您也应该尝试使用和不使用原始连续变量。