数据列缺失的四种处理方法
-
丢弃
丢弃意味着会消减数据特征, 以下任何一种场景都不宜采用该方法:
1.数据集中存在大量的数据记录不完整情况且比例较大, 例如超过10%, 删除这些带有缺失值的记录意味着会随时过多有用信息.
2.带有缺失值的数据记录大量存在着明显的数据分布规律或特征, 例如带有缺失值的数据记录的目标标签主要集中与某一类或几类, 如果删除这些数据记录将使对应分类的数据样本丢失大量特征信息, 导致模型过拟合或分类不准确. -
补全
相对丢弃而言, 补全是更加常用的缺失值处理方式, 常用的补全方法如下:
1.统计法
对于数值型的数据, 使用均值, 加权均值, 中位数等方法补足; 对于分类型数据, 使用类别众数最多的值补足.
2. 模型法
更多时候我们会基于已有的其他字段, 将缺失字段作为目标变量进行预测, 从而得到最为可能的补全值. 如果带有缺失值的列是数值变量, 采用 回归模型 补全; 如果是分类变量, 则采用 分类模型 补全.
3.专家补全
对于少量且具有重要意义的数据记录, 专家补足也是非常重要的一种途径.
4.其他方法
例如随机法, 特殊值法, 多重填补等. -
真值转换法
在某些情况下, 我们坑那个无法得知缺失值的分布规律, 并且无法对于缺失值采用上述任何一种不全方法做处理; 或者我们认为数据缺失也是一种规律, 不应对缺失值随意出来, 那么还有一种缺失值处理思路 — 真值转换. -
不处理
在数据预处理阶段, 对于具有缺失值的数据记录不做任何处理, 也是一种思路. 这种思路主要看后期的数据分析和建模应用, 很多模型对于缺失值有容忍度或灵活的处理方法, 因此在预处理阶段可以不作处理.
常见的能够自动处理缺失值的模型包括: KNN, 决策树和随机森林, 神经网络和朴素贝叶斯, DBSCAN等. 这些模型对于缺失值的处理思路是:
1. 忽略, 缺失值不参与距离计算, 例如 KNN.
2. 将缺失值作为分布的一种状态, 并参与到建模过程, 例如各种决策树及其变体.
3. 不基于距离做计算, 因此基于值的记录做计算本身的影响就消除了, 例如DBSCAN