数据清洗

数据列缺失的四种处理方法

  • 丢弃

    丢弃意味着会消减数据特征, 以下任何一种场景都不宜采用该方法:

    1.数据集中存在大量的数据记录不完整情况且比例较大, 例如超过10%, 删除这些带有缺失值的记录意味着会随时过多有用信息.

    2.带有缺失值的数据记录大量存在着明显的数据分布规律或特征, 例如带有缺失值的数据记录的目标标签主要集中与某一类或几类, 如果删除这些数据记录将使对应分类的数据样本丢失大量特征信息, 导致模型过拟合或分类不准确.

  • 补全

    相对丢弃而言, 补全是更加常用的缺失值处理方式, 常用的补全方法如下:

    1.统计法

    对于数值型的数据, 使用均值, 加权均值, 中位数等方法补足; 对于分类型数据, 使用类别众数最多的值补足.

    2. 模型法

    更多时候我们会基于已有的其他字段, 将缺失字段作为目标变量进行预测, 从而得到最为可能的补全值. 如果带有缺失值的列是数值变量, 采用 回归模型 补全; 如果是分类变量, 则采用 分类模型 补全.

    3.专家补全

    对于少量且具有重要意义的数据记录, 专家补足也是非常重要的一种途径.

    4.其他方法

    例如随机法, 特殊值法, 多重填补等.

  • 真值转换法

    在某些情况下, 我们坑那个无法得知缺失值的分布规律, 并且无法对于缺失值采用上述任何一种不全方法做处理; 或者我们认为数据缺失也是一种规律, 不应对缺失值随意出来, 那么还有一种缺失值处理思路 — 真值转换.

  • 不处理

    在数据预处理阶段, 对于具有缺失值的数据记录不做任何处理, 也是一种思路. 这种思路主要看后期的数据分析和建模应用, 很多模型对于缺失值有容忍度或灵活的处理方法, 因此在预处理阶段可以不作处理.

    常见的能够自动处理缺失值的模型包括: KNN, 决策树和随机森林, 神经网络和朴素贝叶斯, DBSCAN等. 这些模型对于缺失值的处理思路是:

    1. 忽略, 缺失值不参与距离计算, 例如 KNN.

    2. 将缺失值作为分布的一种状态, 并参与到建模过程, 例如各种决策树及其变体.

    3. 不基于距离做计算, 因此基于值的记录做计算本身的影响就消除了, 例如DBSCAN

posted @ 2019-09-20 10:52  larkii  阅读(114)  评论(0编辑  收藏  举报