三、数据挖掘---数据预处理

数据预处理技术
本文探讨了数据预处理的重要性和常用技术,包括数据清理、数据集成、数据归约和数据变换。详细介绍了处理缺失值、噪声数据和不一致性,以及数据集成、归约和变换的具体方法。

当今现实世界的数据库极易受噪声、缺失值和不一致数据的侵扰,因为数据库太大并且多半来自多个异种数据源。低质量的数据将导致低质量的挖掘结果。

数据预处理技术。数据清理可以用来清除数据中的噪声,纠正不一致。数据集成将数据由多个数据源合并成一个一致的数据存储,如数据仓库。数据归约可以通过如聚集、删除冗余特征或聚类来降低数据的规模。数据变换可以用来把数据压缩到较小的区间,如0.0到1.0。这可以提高涉及距离度量的挖掘算法的准确率和效率。这些技术不是相互排斥的,可以一起使用。例如,数据清理可能涉及纠正错误数据的变换,如通过把一个数据字段的所有项都变换成公共格式进行数据清理。

数据质量:为什么要对数据预处理

数据如果能满足其应用要求,那么它是高质量的。数据质量涉及许多因素,包括准确性、完整性、一致性、时效性、可信性和可解释性,但现实中并非高质量数据,所以要进行预处理。

数据预处理的主要任务

本节我们考察数据预处理的主要步骤,即数据清理、数据集成、数据归约和数据变换
数据清理(data cleaning)例通过填写缺失的值,光滑噪声数据,识别或删除离群点,并解决不一致性来“清理”数据。

数据集成(data integration)回到你在AllElectronics的任务,假定你想在分析中使用来自多个数据源的数据。这涉及集成多个数据库、数据立方体或文件,即数据集成。

数据归约(data reduction)随着更深入地考虑数据,你可能会问自己:“我为分析而选取的数据集是巨大的,这肯定会降低数据挖掘过程的速度。有什么办法能降低数据集的规模,而又不损害数据挖掘的结果吗?”数据归约得到数据集的简化表示,它小得多,但能够产生同样的(或几乎同样的)分析结果。数据归约策略包括维归约和数值归约。

数据变换(data transformation)规范化、数据离散化和概念分层产生都是某种形式的数据变换。你很快就会意识到,数据变换操作是引导挖掘过程成功的附加的预处理过程。

 

数据清理

现实世界的数据一般是不完整的、有噪声的和不一致的。数据清理例程试图填充缺失的值、光滑噪声并识别离群点、纠正数据中的不一致。

缺失值

  1. 元组(数据表)的一些属性(数据列)(如顾客的income)没有记录值。怎样才能为该属性填上缺失的值?我们看看下面的方法。
  2. 忽略元组:当缺少类标号时通常这样做(假定挖掘任务涉及分类)。
  3. 人工填写缺失值:一般来说,该方法很费时,并且当数据集很大、缺失很多值时,该方法可能行不通。
  4. 使用一个全局常量填充缺失值:将缺失的属性值用同一个常量(如“Unknown”或-∞)替换。如果缺失的值都用如“Unknown”替换,则挖掘程序可能误以为它们形成了一个有趣的概念,因为它们都具有相同的值——“Unknown”。因此,尽管该方法简单,但是并不十分可靠。
  5. 使用属性的中心度量(如均值或中位数)填充缺失值
  6. 使用最可能的值填充缺失值:可以用回归、使用贝叶斯形式化方法的基于推理的工具或决策树归纳确定。例如,利用数据集中其他顾客的属性,可以构造一棵决策树,来预测income的缺失值。

方法(3)~方法(6)使数据有偏,填入的值可能不正确。然而,方法(6)是最流行的策略与其他方法相比,它使用已有数据的大部分信息来预测缺失值。在估计income的缺失值时,通过考虑其他属性的值,有更大的机会保持income和其他属性之间的联系。

噪声数据

“什么是噪声?”噪声(noise)是被测量的变量的随机误差或方差。

随机误差也称为偶然误差和不定误差,是由于在测定过程中一系列有关因素微小的随机波动而形成的具有相互抵偿性的误差。其产生的原因是分析过程中种种不稳定随机因素的影响,如室温、相对湿度和气压等环境条件的不稳定,分析人员操作的微小差异以及仪器的不稳定等。

方差是在概率论和统计方差衡量随机变量或一组数据时离散程度的度量。概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。在许多实际问题中,研究方差即偏离程度有着重要意义。

我们看看下面的数据光滑技术。

分箱(binning):分箱方法通过考察数据的“近邻”(即周围的值)来光滑有序数据值。

回归(regression):也可以用一个函数拟合数据来光滑数据。这种技术称为回归。线性回归涉及找出拟合两个属性(或变量)的“最佳”直线,使得一个属性可以用来预测另一个。多元线性回归是线性回归的扩充,其中涉及的属性多于两个,并且数据拟合到一个多维曲面。

离群点分析(outlier analysis):可以通过如聚类来检测离群点。聚类将类似的值组织成群或“簇”。直观地,落在簇集合之外的值被视为离群点

数据清理过程的第一步是偏差检测(discrepancy detection)。导致偏差的因素可能有多种,包括具有很多可选字段的设计糟糕的输入表单、人为的数据输入错误、有意的错误(例如,不愿意泄露自己的信息),以及数据退化(例如,过时的地址)。偏差也可能源于不一致的数据表示和编码的不一致使用。

数据清理作为一个过程

数据清理过程的第一步是偏差检测(discrepancy detection)。导致偏差的因素可能有多种,包括具有很多可选字段的设计糟糕的输入表单、人为的数据输入错误、有意的错误(例如,不愿意泄露自己的信息),以及数据退化(例如,过时的地址)。偏差也可能源于不一致的数据表示和编码的不一致使用。

数据集成

数据挖掘经常需要数据集成——合并来自多个数据存储的数据。小心集成有助于减少结果数据集的冗余和不一致。这有助于提高其后挖掘过程的准确性和速度。

实体识别问题

数据分析任务多半涉及数据集成。数据集成将多个数据源中的数据合并,存放在一个一致的数据存储中,如存放在数据仓库中。这些数据源可能包括多个数据库、数据立方体或一般文件。

冗余和相关分析

冗余是数据集成的另一个重要问题。一个属性(例如,年收入)如果能由另一个或另一组属性“导出”,则这个属性可能是冗余的。属性或维命名的不一致也可能导致结果数据集中的冗余。

有些冗余可以被相关分析检测到。给定两个属性,这种分析可以根据可用的数据,度量一个属性能在多大程度上蕴涵另一个。对于标称数据,我们使用χ2(卡方)检验。对于数值属性,我们使用相关系数(correlation coefficient)和协方差(covariance),它们都评估一个属性的值如何随另一个变化。

冗余和相关分析

冗余是数据集成的另一个重要问题。一个属性(例如,年收入)如果能由另一个或另一组属性“导出”,则这个属性可能是冗余的。属性或维命名的不一致也可能导致结果数据集中的冗余。

有些冗余可以被相关分析检测到。给定两个属性,这种分析可以根据可用的数据,度量一个属性能在多大程度上蕴涵另一个。对于标称数据,我们使用χ2(卡方)检验。对于数值属性,我们使用相关系数(correlation coefficient)和协方差(covariance),它们都评估一个属性的值如何随另一个变化。

元组重复

除了检测属性间的冗余外,还应当在元组级检测重复(例如,对于给定的唯一数据实体,存在两个或多个相同的元组)。

数据归约

数据归约(data reduction)技术可以用来得到数据集的归约表示,它小得多,但仍接近于保持原始数据的完整性。也就是说,在归约后的数据集上挖掘将更有效,仍然产生相同(或几乎相同)的分析结果。本节,我们将概述数据归约的策略,然后进一步考察每种技术。

数据归约策略概述

数据归约策略包括维归约、数量归约和数据压缩。

维归约(dimensionality reduction)减少所考虑的随机变量或属性的个数。维归约方法包括小波变换和主成分分析

数量归约(numerosity reduction)用替代的、较小的数据表示形式替换原数据。这些技术可以是参数的或非参数的。

数据压缩(data compression)使用变换,以便得到原数据的归约或“压缩”表示。如果原数据能够从压缩后的数据重构,而不损失信息,则该数据归约称为无损的。

数据变换与数据离散化

数据变换策略概述

在数据变换中,数据被变换或统一成适合于挖掘的形式。数据变换策略包括如下几种:

(1)光滑(smoothing):去掉数据中的噪声。这类技术包括分箱、回归和聚类。

(2)属性构造(或特征构造):可以由给定的属性构造新的属性并添加到属性集中,以帮助挖掘过程。

(3)聚集:对数据进行汇总或聚集。例如,可以聚集日销售数据,计算月和年销售量。通常,这一步用来为多个抽象层的数据分析构造数据立方体。

(4)规范化:把属性数据按比例缩放,使之落入一个特定的小区间,如-1.0~1.0或0.0~1.0。

(5)离散化:数值属性(例如,年龄)的原始值用区间标签(例如,0~10,11~20等)或概念标签(例如,youth、adult、senior)替换。这些标签可以递归地组织成更高层概念,导致数值属性的概念分层。图3.12显示了属性price的一个概念分层。对于同一个属性可以定义多个概念分层,以适合不同用户的需要。

(6)由标称数据产生概念分层:属性,如street,可以泛化到较高的概念层,如city或country。许多标称属性的概念分层都蕴含在数据库的模式中,可以在模式定义级自动定义。

通过规范化变换数据

所用的度量单位可能影响数据分析。例如,把height的度量单位从米变成英寸,把weight的度量单位从公斤改成磅,可能导致完全不同的结果。一般而言,用较小的单位表示属性将导致该属性具有较大值域,因此趋向于使这样的属性具有较大的影响或较高的“权重”。为了帮助避免对度量单位选择的依赖性,数据应该规范化或标准化。这涉及变换数据,使之落入较小的共同区间,如[-1,1]或[0.0,1.0]。(在数据预处理中,术语“规范化”和“标准化”可以互换使用,尽管后一术语在统计学还具有其他含义。)

通过分箱离散化

分箱是一种基于指定的箱个数的自顶向下的分裂技术。这些方法也可以用作数据归约和概念分层产生的离散化方法。例如,通过使用等宽或等频分箱,然后用箱均值或中位数替换箱中的每个值,可以将属性值离散化,就像用箱的均值或箱的中位数光滑一样。这些技术可以递归地作用于结果划分,产生概念分层。

通过直方图分析离散化

像分箱一样,直方图分析也是一种非监督离散化技术,因为它也不使用类信息。直方图把属性A的值划分成不相交的区间,称做桶或箱。

可以使用各种划分规则定义直方图。例如,在等宽直方图中,将值分成相等分区或区间(例如,图3.8的price,其中每个桶宽度为10美元)。理想情况下,使用等频直方图,值被划分,使得每个分区包括相同个数的数据元组。直方图分析算法可以递归地用于每个分区,自动地产生多级概念分层,直到达到一个预先设定的概念层数,过程终止。也可以对每一层使用最小区间长度来控制递归过程。最小区间长度设定每层每个分区的最小宽度,或每层每个分区中值的最少数目。正如下面将介绍的那样,直方图也可以根据数据分布的聚类分析进行划分。

通过聚类、决策树和相关分析离散化

聚类、决策树和相关分析可以用于数据离散化。我们简略讨论这些方法。

标称数据的概念分层产生

现在,我们考察标称数据的数据变换。特别地,我们研究标称属性的概念分层产生。标称属性具有有穷多个不同值(但可能很多),值之间无序。例如地理位置、工作类别和商品类型。

对于用户和领域专家而言,人工定义概念分层是一项乏味和耗时的任务。幸运的是,许多分层结构都隐藏在数据库的模式中,并且可以在模式定义级自动地定义。概念分层可以用来把数据变换到多个粒度层。例如,关于销售的数据挖掘模式除了在单个分店挖掘之外,还可以针对指定的地区或国家挖掘。

转载于:https://my.oschina.net/ydsakyclguozi/blog/2993663

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值