2.2.1 测量和数据收集问题
数据挖掘常常不能在源头控制质量,由于无法避免数据质量问题,因此数据挖掘着眼于两个方面:
- 数据质量问题的检测和纠正。
- 使用可以容忍低质量数据的算法。
其中第一步,检测和纠正,通常被称为数据清理。
下面将讨论数据质量的具体方面。
测量和数据收集问题
现实情况下期望数据是完美的并不现实。由于人为,测量设备限制等因素收集到的数据往往是有缺陷的。值甚至整个数据对象都可能丢失,也可能存在虚假或重复的对象。
本文将重点关注与数据测量和收集相关的数据质量问题。将从测量和数据收集错误的定义开始,然后考虑涉及测量误差的各种问题:噪声(noise)、伪像(artifacts)、偏倚(bias)、精度(precision)和准确率(accuracy)。最后,会讨论同时涉及测量和数据收集问题的数据质量问题:离群点、遗漏和不一致的值以及重复数据。
测量误差和数据收集错误
测量误差(measurement error)是指测量过程中导致的问题。通常的问题是记录的值在某种程度上与真实值不同。对于连续属性,测量值与真值的数值差称为误差(error)。
数据收集错误(data collection error)指的是遗漏数据对象或属性值,或不适当地包含了其他数据对象等错误。例如一种特定种类的动物研究可能包含了相关种类的其他动物,它们只是表面和要研究的种类相似。
测量误差和数据收集误差可以是系统的,也可以是随机的。
在特定的领域中,某些类型的数据错误是常见的,并且存在用于检测和/或纠正这些错误的成熟技术。例如,当手动输入数据时,键盘错误很常见,因此,许多数据输入程序都有技术来检测这些错误,并通过人工干预来纠正这些错误。
噪声和伪像
噪声是属于测量的随机误差。它通常涉及值的失真或加入了虚假对象。图2.5显示了被随机噪声干扰之前和之后的时间序列。如果在时间序列中加入更多的噪声,它的形状就会消失,如图2.6所示。
噪声通常用于具有空间或时间分量的数据。在这种情况下,信号或图像处理技术可以经常用于减少噪声,从而帮助发现可能“淹没在噪声中”的模式(信号)。尽管如此,消除噪声也是很困难的,数据挖掘中的许多工作都集中在设计鲁棒算法(robust algorithm),即使存在噪声也能产生可接受的结果。
数据误差可能是某些确定的现象。如一组照片在同一位置出现了条纹。这种确定性的数据失真通常被称为伪像(artifact)。
精度,偏倚和准确率
在统计学和实验科学中,测量过程和结果数据的质量是通过精度和偏倚来衡量的。以下是标准定义。
Precision : The closeness of repeated measurements (of the same quantity) to one another.
精度:(同一个量的)重复测量值之间的接近程度。
Bias: A systematic variation of measurements from the quantity being measured.
偏倚:测量值与被测量之间的系统的偏差。
精度通常是通过一组值的标准差(\[S\])来测量的,而偏倚是通过取这组值的平均值与被测量量的已知值之间的差(\[X_i - EX\])来测量的。
例如:有一个标准重量1g的砝码,被测量物体5次的测量值为{1.015, 0.990, 1.013, 1.001, 0.986}。均值为\[EX = 1.001\],因此偏差为1.001 - 1 = 0.001。以样本标准偏差衡量,其精度为 \[S = \sqrt(\frac{\sum_{i=0}^n(X_i-EX)}{n-1}) = 0.013\]。
通常使用准确率表示测量误差的程度。
Accuracy: The closeness of measurements to the true value of the quantity being measured.
准确性取决于精度和偏倚,只是一个一般化的概念,没有关于这两个量的准确度的具体表达式。
准确性的一个重要方面是有效数字(significant digit)的使用。即仅使用与数据精度相符的数字位数来表示测量或计算的结果。例如,如果一个物体的长度是用一根最小标记为毫米的米尺测量的,那么我们应该只记录数据的长度到最近的毫米。这种测量的精度为\[\pm5mm\]
离群点
离群点(Outliers)是:
- 在某种意义上具有不同于数据集中大多数其他数据对象的特征的数据对象
- 或相对于该属性的典型值来说不寻常的属性值。
离群点可以被称为异常(anomalous)对象或值。
与噪声不同,离群点可以是我们感兴趣的合法数据对象或值。例如,在欺诈和网络入侵检测中,目标是从大量正常对象或事件中发现异常对象或事件。
遗漏值
遗漏值(Missing Values):对象可能丢失的部分属性值,
- 在某些情况下,没有收集该属性信息。例如有些人拒绝透露他们的年龄和体重。
- 另一些情况下,一些属性可能并不适用于该对象,例如男性和女性所填写的信息不同,在有条件填写的部分信息中,可能为了方便,会将男性和女性所有字段都进行了存储。
处理遗漏值的几种策略
- 删除数据对象或属性。删除具有遗漏值的数据对象,然而即使不完整的数据对象也包含一些有用的信息。如果一个数据集只有几个缺少值的对象,那么可以删除他们。但是如果缺失的对象过多,删除的话可能对影响分析的准确性。消除缺失值的属性时同样要谨慎,因为某些属性的值可能对分析至关重要。
- 估计遗漏值。例如有许多相似数据点的数据集。这种情况下,通常使用离遗漏值最近的点的属性值来估计缺失值。如果属性时连续的,则使用最近邻的评价属性值。如果属性是分类的,则可以取最近邻中最常出现的属性值。例如,地面站记录的降水量,对于未设地面站的区域,降水量可以使用邻近地面站的观测值估计。
- 忽略分析过程中的遗漏值。可以修改许多数据挖掘方法来忽略遗漏的值。例如,假设正在对数据对象进行聚类,需要计算数据对象对之间的相似性。如果某对的一个对象或两个对象都遗漏了某些属性,那么可以通过仅使用没有遗漏值的属性来计算相似性。这种相似性是近似的,除非整个属性数目很少或者遗漏值的数量很大。
不一致值
例如输入的邮政编码和城市地址不一致。有些一致性是常识,比如身高不能是负数;有些一致性问题需要参考其他外源数据,比如从其他数据库中调取个人信息进行参考。因此纠正不一致需要额外的冗余信息。无论导致不一致值的原因是什么,重要的是能够检测出来,并且如果可能的话,纠正这种错误。
重复数据
数据集可能包含重复或几乎重复的数据对象,为了检测和消除这种重复,必须解决两个主要问题。
- 如果有两个对象实际上代表一个对象,那么对应属性的一个或多个值通常是不同的,必须解析这些不一致的值。
- 需要注意避免意外地将相似但不重复的数据对象合并在一起,比如两个有着相同名字的人。
- 在某些情况下,两个或多个对象相对于数据库的属性度量上是相同的,但它们仍然代表不同的对象。这种情况重复是合法的,但需要注意修改一些没有考虑这种情况的算法,否则可能会造成问题。