数据清洗中的缺失值处理

无论是机器学习、数据挖掘、数据分析,对数据的处理都是至关重要的一步,数据预处理做的好,往往让我们的数据分析有事半功倍的效果,其中正确处理缺失值更是重中之重。

造成数据缺失的原因

  • 信息暂时无法获取。网购退货数量及评价不及时。
  • 获取信息所需要的代价太大
  • 信息统计时被遗漏
  • 系统实时性要求较高

数据确实的类型

  • 完全随机缺失(MCAR)指的是数据的缺失是完全随机的,不依赖于任何不完全变量或完全变量,不影响样本的无偏性。如家庭地址缺失
  • 随机缺失(MAR)指的是数据的缺失不是完全随机的,即该类数据的缺失依赖于其他完全变量。例如财务数据缺失情况与企业的大小有关
  • 非随机缺失(MNAR)指的是数据的缺失与不完全变量自身的取值有关。如高收入人群的不原意提供家庭收入

缺失数据处理方法主要有三大类:

  • 删除元组:将缺失的数据所在的一组数据删除
  • 数据补齐:用一定的值去填充空值
  • 不处理

数据挖掘中常用的有以下几种补齐方法

  1. 人工填写
  2. 特殊值填写(将空值作为一种特殊的属性值来处理,它不同于其他的任何属性值。如所有的空值都用“unknown”填充。一般作为临时填充或中间过程。)
  3. 平均值填写 如果缺失值时数值类型,就根据该属性在其他所有对象取值的平均值来填充该缺失值的属性值 如果数据是非数值类型,就看该属性其他所有对象的众数填充该缺失值。(以最大可能的取值来补充缺失的属性值)
  4. 热卡填充(就近补齐) 对于一个包含空值的对象,热卡填充法在完整数据中找到一个与它最相似的对象,然后用这个相似的对象进行填充。但是难以恒定相似的标准,主观因素较多。
  5. 最近距离邻法(k-means)先根据欧氏距离或相关性分析来确定距离缺失数据样本最近的K个样本,将这K个值加权平均来估计样本的缺失数据。
  6. 使用所有可能的值填充    用空缺属性值的所有可能的属性取值来填充,能够得到较好的补齐效果。但是,当数据量很大或者遗漏的属性值较多时,其计算的代价很大,可能的测试方案很多。如果没有任何可以借助的变量或可参考变量作用很低时可以采用这个方法,方便简单。
  7. 回归  基于完整的数据集,建立回归方程,对于包含空值的对象,将已知属性值代入方程来估计位置属性值,以此估计值来进行填充。当变量不是线性相关时,会导致偏差。常用线性回归。
  8. 期望值最大化方法(EM)EM算法是一种在不完全数据情况下计算极大似然估计或者后验分布的迭代算法。在每一迭代循环过程中交替执行两个步骤:E步(Excepctaion step,期望步),在给定完全数据和前一次迭代所得到的参数估计的情况下计算完全数据对应的对数似然函数的条件期望;M步(Maximzation step,极大化步),用极大化对数似然函数以确定参数的值,并用于下步的迭代。算法在E步和M步之间不断迭代直至收敛,即两次迭代之间的参数变化小于一个预先给定的阈值时结束。该方法可能会陷入局部极值,收敛速度也不是很快,并且计算很复杂。

就几种基于统计的方法而言,删除元组法和平均值法差于热卡填充法、期望值最大化方法和多重填充法;回归是比较好的一种方法,但仍比不上hot deck和EM。

不处理:不处理缺失值,直接在包含空值的数据上进行数据挖掘方法包括贝叶斯网络和人工神经网络等

你可能感兴趣的:(面试)