数据挖掘-处理缺失值

作者: Pursuer96 | 来源:发表于2017-12-07 08:56 被阅读27次

为什么需要处理缺失值呢?

训练数据集中缺少的数据可以减少模型的拟合,或者可能导致模型偏差,因为没有正确地分析变量的行为和关系,可能导致错误的预测或分类。


1212395-f41c0f01e5a2d1fb.png1212395-f41c0f01e5a2d1fb.png

注意上图中缺失值:在左侧的情况下,没有处理缺失值, 男性打板球的机会高于女性。 另一方面,如果看看第二个表,其中显示了处理缺失值后的数据(基于性别),我们可以看到女性与男性相比有较高的打板球的机会。

为什么会有缺失值呢?

前面说明了在数据集中处理缺失值的重要性, 现在来确定发生这些缺失值的原因,主要有以下两个阶段:

数据提取(Data Extraction)

提取过程可能有问题,在这种情况下,应该使用数据监护检查数据的准确性, 一些散列程序也可以用来确保数据提取的正确性,比较容易纠正(数据提取主要在NLP或者图像邻域,我现在理解不到位,后面补充)。

数据采集(Data collection)

数据采集时发生的错误,很难纠正,主要分为以下四种:

  • Missing completely at random
    即所有观测值的缺失变量的概率相同。 例如:数据收集过程的受访者决定在抛出一个硬币后,宣布他们的收入。 如果发生,受访者宣布他的收入,反之亦然,这样,每个观察值,具有相同概率的缺失值。
  • Missing at random
    即随机丢失变量概率,因其他输入变量的不同值或类别而变化。 例如:我们收集年龄,女性相比男性,具有较高的缺失值。
  • 缺失值依赖于不可观察的预测变量
    即缺失值不是随机的并且与未查看的输入变量相关。 例如:在一项医学研究中,如果特定诊断导致不适,那么研究中有更多的辍学机会。 这个缺失值不是随机的,除非我们将“不适”作为所有患者的输入变量。
  • 缺失取决于缺失值本身
    即缺失值的概率与缺失值本身直接相关。 例如:拥有较高或较低收入的人士,可能让其提供收入证明,有些不愿意。

缺失值有哪些处理方法呢?

删除

1212395-d5491dcdb9cb27e0.png1212395-d5491dcdb9cb27e0.png
  • 整条记录删除(list wise deletion)
    删除任何变量丢失的观察结果,这种方法的主要优点之一是简单,但是这种方法降低了模型的准确性,因为它减少了样本大小。
  • 删除对应的缺失值(In pair wise deletion)
    这种方法的优点是,它保留了许多可用于分析的情况,缺点之一是对不同的变量使用不同的样本大小。
  • 当缺失值为Missing completely at random,使用删除方法,否则可能会偏离模型输出。

Mean/ Mode/ Median估计

目标是使用可以在数据集的有效值中识别的已知关系来辅助估计缺失值。 Mean/Mode/Median是最常用的方法之一,包括通过该变量的所有已知值的mean或Median(定量属性)或Mode(定性属性)来替换给定属性的缺失数据,有以下两种方式:

  • 广义插补(Generalized Imputation)
    在这种情况下,我们计算该变量的所有非缺失值的mean或Median,然后用Mean或Median替换缺失值。 如上表所示,变量“人力”缺失值,取所有非缺失值的平均值(28.33)替换缺失值。
  • 相似插补(Similar case Imputation)
    如上表,分别计算性别“男性”(29.75)和“女性”(25)的平均值,然后根据性别替换缺失值,对于“男”的,以29.75代替缺失值,“女”的以“25”代替。
  • 如果missing value占总体的比例非常小,那么直接填入Mean、Mode或者Median

预测模型(Prediction Model)

预测模型是处理缺失值的复杂方法之一, 通过创建一个预测模型来估计替代缺失值。 在这种情况下,我们将数据集分为两组:一组没有变量的缺失值,另一组有缺少值, 第一个数据集成为模型的训练数据集,而具有缺失值的第二个数据集是测试数据集,变量与缺失值被视为目标变量。 接下来,我们创建一个模型,根据训练数据集的其他属性预测目标变量,并填充测试数据集的缺失值。我们可以使用回归,方差分析,逻辑回归和各种建模技术来执行此操作。 这种方法有两个缺点:

  • 模型估计值通常比真实值更好
  • 如果与数据集中的属性和缺少值的属性没有关系,则该模型对于估计缺失值将不精确。
    如果missing value所占比例不算小也不算大时,采用该方法。

KNN

此方法使用与值丢失的属性最相似的属性来估计属性的缺失值,通过距离函数确定两个属性的相似度。 具有如下优点和缺点:
优点:

KNN可以预测定性和定量属性
不需要为缺少数据的每个属性创建预测模型
具有多个缺失值的属性可以轻松处理
数据的相关结构被考虑在内
缺点:
KNN算法在分析大数据方面非常耗时, 搜索所有数据集,寻找最相似的实例。 k值的选择是非常关键的。
k较高脱显不了显著性属性,而较低的k会丢失重要属性。

注意: 如果missing value所占比例大,那么直接将miss value当做一种特殊的情况,另取一个值填入。

#个人主页:www.iooy.com

参考:https://www.analyticsvidhya.com/blog/2016/01/guide-data-exploration/

相关文章

  • 《Python数据分析与挖掘实战》读书笔记-数据预处理(一)

    《Python数据分析与挖掘实战》,第四章数据预处理 缺失值处理 上一篇说到,处理缺失值的方法有3种:删除记录、数...

  • 数据挖掘-处理缺失值

    为什么需要处理缺失值呢? 训练数据集中缺少的数据可以减少模型的拟合,或者可能导致模型偏差,因为没有正确地分析变量的...

  • 机器学习 - 特征工程

    数据处理 缺失值处理行数据缺失过多,用户区分度就会降低,列数据缺失过多会导致建模存在偏差fillna:填充缺失值;...

  • 数据的缺失值处理说明

    缺失值说明 缺失值产生的原因 缺失值处理 缺失值说明 缺失数据是指粗糙数据中由于缺少信息而造成的数据的聚类、分组、...

  • 121、处理缺失数据

    处理缺失数据 滤除缺失数据 填充缺失数据 如果全为NA值则插值方法不起作用。 源码:

  • 数据分析中对缺失值和异常值的处理

    在数据分析、数据挖掘中,每一个分析师几乎都遇见过数据缺失或异常的问题。 1. 缺失值的常见处理方法 1.1 知其然...

  • 利用R进行脏数据清洗

    在进行正式的数据分析之前,必须要保证数据的质量,故而我们要处理缺失值、异常值这些脏数据。 一、缺失值 缺失值的处理...

  • day80-数据清洗及数据库连接

    1数据清洗 1.1缺失数据处理 isnull检测缺失值;dropna删除缺失值;python内置的none值在对象...

  • 数据清洗

    数据清洗:删除原始数据集中的无关数据,重复数据,平滑噪声数据,处理缺失值和异常值 缺失值的处理:删除记录 数据插补...

  • 第7章 数据清洗和准备

    7.1 处理缺失数据 pandas使用浮点值NaN(Not a Number)表示缺失数据。我们称其为哨兵值,可以...

网友评论

    本文标题:数据挖掘-处理缺失值

    本文链接:https://www.haomeiwen.com/subject/pcnrixtx.html