机器学习之数据探索——数据质量分析

机器学习之数据探索——数据质量分析

数据探索是对样本数据进行解释性的分析工作,它是数据挖掘和机器学习较为前期的部分,更偏重于研究数据的本质、描述数据的形态特征并解释数据的相关性。
换句话说,透过数据探索,我们应该可以回答如下问题:
样本数据的分布怎样?有什么特点?数据之间有何种关系?数据是否满足建模要求?

问题驱动发展,对以上问题进行解答,涉及到数据探索的两个方面工作:

数据质量分析

数据特征分析

需要提及的是,数据探索与数据预处理紧密相连的,二者在数据挖掘的中没有绝对的先后次序。比如,在数据质量分析中,就牵涉到数据预处理中的数据清洗。
本文将主要介绍数据质量分析的相关工作。

数据质量分析

数据质量分析的主要任务是检查原始数据中是否存在脏数据,脏数据一般是指不符合要求,脏数据包括以下方面:

1 缺失值

2 异常值

3 不一致的值

4 重复数据以及含有特殊符号(如#、¥、*)的数据

对于第四种数据,理解起来比较简单,处理也很容易,因此主要针对前三种数据进行分析,至于处理手段,所用到的方法是数据预处理中的数据清洗内容。

1 缺失值

数据的缺失主要包括记录的缺失和记录中某个字段信息的缺失,两者都会造成分析结果的不准确。

(1)缺失值产生原因
1)有些信息暂时无法获取,或者获取代价太大。
2)有些信息被遗漏。可能是忘记填写或对数据理解错误等因素,也可能是由于数据采集设备的故障造成。
3)属性值不存在。在某些情况下,对一些对象来说某些属性值不存在的,如一个未婚者的配偶姓名、一个儿童的固定收入等。

(2)缺失值处理方式
1)删除元组
将存在遗漏信息属性值的对象(记录)删除,从而得到一个完备的信息表。这种方法在对象有多个属性缺失值、被删除的含缺失值的对象与信息表中的数据量相比非常小的情况下是非常有效的。然而这种方法丢弃了大量隐藏在这些对象中的信息。在信息表中对象很少的情况下会影响到结果的正确性,可能导致数据发生偏离,从而引出错误的结论。
2)数据填补
数据挖掘中常用的有以下几种补齐方法:
特殊值填充、平均值填充、就近补齐
使用算法对缺失值进行估计,包括K最近邻法、回归、期望值最大化方法
3)不处理
这种方式对模型有特定要求,需要模型能够处理缺失值。

2 异常值

异常值是指样本中的个别值,其数据明显偏离其余的观测值。异常值也称为离群点,异常值的分析也称为离群点分析。

(1)异常值发现
1)简单计量分析
可以先对变量做一个描述性统计,进而查看哪些数据是不合理的。最常用的统计量是最大值和最小值,用来判断这个变量的取值是否超出了合理的范围。如客户年龄的最大值为199岁,则该变量的取值存在异常。
2)3σ原则
如果数据服从正态分布,在3σ原则下,异常值被定义为一组测定值中与平均值的偏差超过3倍标准差的值。在正态分布的假设下,距离平均值3σ之外的值出现的概率为P(|x-μ|>3σ)≤0.003,属于极个别小概率事件。
如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。
3)箱型图分析
箱型图提供了识别异常值的一个标准:异常值通常被定义为小于QL-1.5IQR或大于Qu+1.5IQR的值。QL成为下四分位数,表示全部观察值中有四分之的数据取值比它小;Qu称为上四分位数,表示全部观察值中有四分之一的数据取值比它大;IQR称为四分位数间距,是上四分位数与下四分位数之差,其间包含了全部观察值的一半。

(2)异常值处理方式
异常值的处理与缺失值类似,简要如下:
1)删除含有异常值的记录
2)将异常值视为缺失值,使用缺失值处理方法来处理
3)不处理

3 一致性

数据不一致性是指数据的矛盾性、不相容性等。
在数据挖掘过程中,不一致数据的产生主要发生在数据集成过程中,这可能是由于从不同的数据源、对于重新存放的数据未能进行一致性造成的。例如,两张表中都存储了用户的电话号码,但在用户的电话号码发生改变时只更新了一张表中的数据,那么这两张表中就有了不一致的数据。

声明:本文有关内容源于《python数据挖掘与实践》