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