身高2m,体重2kg,这样的数据“看上去很好”?

2019-09-02 15:57:13 浏览数 (1)

导读:数据挖掘算法通常用于为其他目的收集的数据,或者在收集时未明确其目的。因此,数据挖掘常常不能“在数据源头控制质量”。相比之下,统计学的实验设计或调查中,其数据质量往往都达到了一定的要求。由于无法避免数据质量问题,因此数据挖掘着眼于两个方面:

(1)数据质量问题的检测和纠正;

(2)使用可以容忍低质量数据的算法。第一步的检测和纠正,通常称作数据清理(data cleaning)。

本文讨论数据质量。尽管也讨论某些与应用有关的问题,但是关注的焦点是测量和数据收集问题。

作者:陈封能(Pang-Ning Tan)、迈克尔·斯坦巴赫(Michael Steinbach)等

如需转载请联系大数据(ID:hzdashuju)

01 测量和数据收集问题

期望数据完美是不现实的。人类的错误、测量设备的限制或数据收集过程中的漏洞都可能导致问题。数据的值乃至整个数据对象都可能会丢失。在有些情况下,可能有不真实或重复的对象,即对应于单个“实际”对象出现了多个数据对象。

例如,对于一个最近住过两个不同地方的人,可能有两个不同的记录。即使所有的数据都不缺,并且“看上去很好”,也可能存在不一致,如一个人身高2m,但体重只有2kg。

下面我们关注数据测量和收集方面的数据质量问题。我们先定义测量误差和数据收集错误,然后考虑涉及测量误差的各种问题:噪声、伪像、偏置、精度和准确率。最后讨论同时涉及测量和数据收集的数据质量问题:离群点、遗漏和不一致的值、重复数据。

1. 测量误差和数据收集错误

术语测量误差(measurement error)是指测量过程中产生的问题。一个常见的问题是:在某种程度上,记录的值与实际值不同。对于连续属性,测量值与实际值的差称为误差(error)。

术语数据收集错误(data collection error)是指诸如遗漏数据对象或属性值,或者不当地包含了其他数据对象等错误。例如,一种特定种类动物研究可能包含了相关种类的其他动物,它们只是表面上与要研究的种类相似。测量误差和数据收集错误可能是系统的也可能是随机的。

我们只考虑一般的错误类型。在特定的领域中,总有某些类型的错误是常见的,并且通常存在很好的技术,能检测并纠正这些错误。例如,人工输入数据时,键盘录入错误是常见的,因此许多数据输入程序具有检测技术,并通过人工干预纠正这类错误。

2. 噪声和伪像

噪声是测量误差的随机部分。这通常涉及值被扭曲或加入了谬误对象。图2.5显示了被随机噪声干扰前后的时间序列。如果在时间序列上添加更多的噪声,形状将会消失。图2.6显示了三组添加一些噪声点(用“ ”表示)前后的数据点集。注意,有些噪声点与非噪声点混在一起。

▲图2.5 时间序列中的噪声

▲图2.6 空间中的噪声

术语“噪声”通常用于包含时间或空间分量的数据。在这些情况下,常常可以使用信号或图像处理技术降低噪声,从而帮助发现可能“淹没在噪声中”的模式(信号)。尽管如此,完全消除噪声通常是困难的,而许多数据挖掘工作都关注设计鲁棒算法(robust algorithm),即在噪声干扰下也能产生可以接受的结果。

数据错误可能是更确定性现象的结果,如一组照片在同一地方出现条纹。数据的这种确定性失真常称作伪像(artifact)。

3. 精度、偏置和准确率

在统计学和实验科学中,测量过程和结果数据是用精度和偏置度量的。我们给出标准的定义,随后简略加以讨论。对于下面的定义,我们假定对相同的基本量进行重复测量。

  • 精度(precision):(同一个量的)重复测量值之间的接近程度。
  • 偏置(bias):测量值与被测量之间的系统的变化。

精度通常用值集合的标准差度量,而偏置用值集合的均值与测出的已知值之间的差度量。只有那些通过外部手段能够得到测量值的对象,偏置才是可确定的。

假定我们有1g质量的标准实验室重量,并且想评估实验室的新天平的精度和偏置。我们称重5次,得到下列值:{1.015,0.990,1.013,1.001,0.986}。这些值的均值是1.001,因此偏置是0.001。用标准差度量,精度是0.013。

通常使用更一般的术语准确率表示数据测量误差的程度。

  • 准确率(accuracy):被测量的测量值与实际值之间的接近度。

准确率依赖于精度和偏置,但是没有用这两个量表达准确率的公式。

准确率的一个重要方面是有效数字(significant digit)的使用。其目标是仅使用数据精度所能确定的数字位数表示测量或计算结果。

例如,对象的长度用最小刻度为毫米的米尺测量,则我们只能记录最接近毫米的长度数据,这种测量的精度为±0.5mm。这里不再详细地讨论有效数字,因为大部分读者应当在先前的课程中接触过,并且在理工科和统计学教材中讨论得相当深入。

诸如有效数字、精度、偏置和准确率问题常常被忽视,但是对于数据挖掘、统计学和自然科学,它们都非常重要。通常,数据集并不包含数据精度信息,用于分析的程序返回的结果也没有这方面的信息。45但是,缺乏对数据和结果准确率的理解,分析者将可能出现严重的数据分析错误。

4. 离群点

离群点(outlier)是在某种意义上具有不同于数据集中其他大部分数据对象的特征的数据对象,或是相对于该属性的典型值来说不寻常的属性值。我们也称其为异常(anomalous)对象或异常值。有许多定义离群点的方法,并且统计学和数据挖掘界已经提出了很多不同的定义。

此外,区别噪声和离群点这两个概念是非常重要的。与噪声不同,离群点可以是合法的数据对象或值。例如,在欺诈和网络入侵检测中,目标就是在大量的正常对象或事件中找到异常对象或事件。

5. 遗漏值

一个对象遗漏一个或多个属性值的情况并不少见。有时可能会出现信息收集不全的情况,例如有的人拒绝透露年龄或体重。

还有些情况下,某些属性并不能用于所有对象,例如表格常常有条件选择部分,仅当填表人以特定的方式回答前面的问题时,条件选择部分才需要填写,但为简单起见存储了表格的所有字段。无论何种情况,在数据分析时都应当考虑遗漏值。

有许多处理遗漏值的策略(和这些策略的变种),每种策略适用于特定的情况。这些策略在下面列出,同时我们指出它们的优缺点。

  • 删除数据对象或属性 一种简单而有效的策略是刪除具有遗漏值的数据对象。然而,即使不完整的数据对象也包含一些有用的信息,并且,如果许多对象都有遗漏值,则很难甚至不可能进行可靠的分析。 尽管如此,如果某个数据集只有少量的对象具有遗漏值,则忽略它们可能是合算的。一种与之相关的策略是删除具有遗漏值的属性。然而,做这件事要小心,46因为被删除的属性可能对分析是至关重要的。
  • 估计遗漏值 有时,遗漏值可以可靠地估计。例如,在考虑以大致平滑的方式变化的、具有少量但分散的遗漏值的时间序列时,遗漏值可以使用其他值来估计(插值)。另举一例,考虑一个具有许多相似数据点的数据集,与具有遗漏值的点邻近的点的属性值常常可以用来估计遗漏的值。 如果属性是连续的,则可以使用最近邻的平均属性值;如果属性是分类的,则可以取最近邻中最常出现的属性值。为了更具体地解释,考虑地面站记录的降水量,对于未设地面站的区域,降水量可以使用邻近地面站的观测值估计。
  • 在分析时忽略遗漏值 许多数据挖掘方法都可以修改,以忽略遗漏值。例如,假定正在对数据对象聚类,需要计算各对数据对象间的相似性。如果某对数据对象的一个对象或两个对象的某些属性有遗漏值,则可以仅使用没有遗漏值的属性来计算相似性。 当然,这种相似性只是近似的,但是除非整个属性数目很少,或者遗漏值的数量很大,否则这种误差影响不大。同样,许多分类方法都可以修改,以便于处理遗漏值。

6. 不一致的值

数据可能包含不一致的值。比如地址字段列出了邮政编码和城市名,但是有的邮政编码区域并不包含在对应的城市中。这可能是人工输入该信息时颠倒了两个数字,或许是在扫描手写体时错读了一个数字。无论导致不一致值的原因是什么,重要的是能检测出来,并且如果可能的话,纠正这种错误。

有些不一致类型容易检测,例如人的身高不应当是负的。另一些情况下,可能需要查阅外部信息源,例如当保险公司处理赔偿要求时,它将对照顾客数据库核对赔偿单上的姓名与地址。

检测到不一致后,有时可以对数据进行更正。产品代码可能有“校验”数字,或者可以通过一个备案的已知产品代码列表复核产品代码,如果发现它不正确但接近一个已知代码,则纠正它。纠正不一致需要额外的或冗余的信息。

  • 例:不一致的海洋表面温度

该例解释实际的时间序列数据中的不一致性。这些数据是在海洋的不同点测量的海洋表面温度(SST)。最初人们利用船或浮标使用海洋测量方法收集SST数据,而最近开始使用卫星来收集这些数据。为了创建长期的数据集,需要使用这两种数据源。

然而,由于数据来自不同的数据源,两部分数据存在微妙的不同。这种差异显示在图2.7中,该图显示了各年度之间SST值的相关性。如果某两个年度的SST值是正相关的,则对应于这两年的位置为白色,否则为黑色。(季节性的变化从数据中删除,否则所有的年都是高度相关的。)数据汇集在一起的地方(1983年)有一个明显的变化。

在1958~1982年和1983~1999年两组中,每组内的年相互之间趋向于正相关,但与另一组的年负相关。这并不意味着该数据不能用,但是分析者应当考虑这种差异对数据挖掘分析的潜在影响。

▲图2.7 年对之间SST数据的相关性。白色区域表示正相关,黑色区域表示负相关

7. 重复数据

数据集可以包含重复或几乎重复的数据对象。许多人都收到过重复的邮件,因为它们以稍微不相同的名字多次出现在数据库中。为了检测并删除这种重复,必须处理两个主要问题。

首先,如果两个对象实际代表同一个对象,则对应的属性值必然不同,必须解决这些不一致的值;其次,需要避免意外地将两个相似但并非重复的数据对象(如两个人具有相同姓名)合并在一起。术语去重复(deduplication)通常用来表示处理这些问题的过程。

在某些情况下,两个或多个对象在数据库的属性度量上是相同的,但是仍然代表不同的对象。这种重复是合法的。但是,如果某些算法设计中没有专门考虑这些属性可能相同的对象,就还是会导致问题。

02 关于应用的问题

数据质量问题也可以从应用角度考虑,表达为“数据是高质量的,如果它适合预期的应用”。特别是对工商界,数据质量的这种提议非常有用。类似的观点也出现在统计学和实验科学中,那里强调精心设计实验来收集与特定假设相关的数据。与测量和数据收集一样,许多数据质量问题与特定的应用和领域有关。我们这里仍然只考虑一些一般性问题。

1. 时效性

有些数据在收集后就开始老化。比如说,如果数据提供正在发生的现象或过程的快照,如顾客的购买行为或Web浏览模式,则快照只代表有限时间内的真实情况。如果数据已经过时,则基于它的模型和模式也已经过时。

2. 相关性

可用的数据必须包含应用所需要的信息。考虑构造一个模型,预测交通事故发生率。如果忽略了驾驶员的年龄和性别信息,那么除非这些信息可以间接地通过其他属性得到,否则模型的准确率可能是有限的。

确保数据集中的对象相关不太容易。一个常见问题是抽样偏置(sampling bias),指样本包含的不同类型的对象与它们在总体中的出现情况不成比例。例如调查数据只反映对调查做出响应的那些人的意见。由于数据分析的结果只能反映现有的数据,抽样偏置通常会导致不正确的分析。

3. 关于数据的知识

理想情况下,数据集附有描述数据的文档。文档的质量好坏决定它是支持还是干扰其后的分析。例如,如果文档标明若干属性是强相关的,则说明这些属性可能提供了高度冗余的信息,我们通常只保留一个属性。(考虑销售税和销售价格。)

然而,如果文档很糟糕,例如,没有告诉我们某特定字段上的遗漏值用-9999表示,则我们的数据分析就可能出问题。其他应该说明的重要特性是数据精度、特征的类型(标称的、序数的、区间的、比率的)、测量的刻度(如长度用米还是英尺)和数据的来源。

关于作者:陈封能(Pang-Ning Tan) ,密歇根州立大学计算机科学与工程系教授,主要研究方向是数据挖掘、数据库系统、网络空间安全、网络分析等。

本文摘编自《数据挖掘导论》(原书第2版),经出版方授权发布。

延伸阅读《数据挖掘导论》(原书第2版)

0 人点赞