数据预处理

3.1 数据预处理:概览

数据的低质量会导致低质量的数据挖掘结果。数据质量包含很多因素,如:精确性、完整性、一致性、时效性、可信性以及可解释性。这里有几种数据预处理的技术,包括:数据清洗,数据聚合,数据删减,数据转换。这些技术能提升挖掘算法的精确性和效率。它们并非相对独立,是共同工作的。比如,数据清洗也包含数据转化以去除错误数据。

不精确数据有很多可能的原因:
(1)数据收集工具可能错误,数据记录中很多人为的或计算机导致的的错误。
(2)用户也可能在值当他们不愿意暴露个人资料的时候在一些强制必须填写的栏目故意提交了错误的资料(如生日直接用默认值1月1日)。这是一些伪装缺失的数据。
(3)数据在传输时也可能出错。一些技术上的限制,例如并行同步数据的传输和计算时缓冲区间的有限性。
(4)不正确的数据也可能因为命名习惯或者数据编码的不一致性,或者输入域的格式不一致。
(5)重复的元组也需要进行数据清洗。

导致数据的不完整性的原因也有很多:
(1)感兴趣的属性并不能总是可获得,比如销售交易数据中的客户资料信息。
(2)另外,很可能因为在当时的条目中,该属性被认为是不重要的。
(3 )相关联的数据没有被记录可能因为误解或者设备故障的原因。

数据的不一致性:

(1)和其他数据记录不一致的数据应该被被删掉。另外,数据历史和修改可能被忽视。缺失的数据,特别是缺失了某些属性值的元组,值可能需要被推断。

时效性也可能影响数据质量:
    比如你在浏览AllElectronics公式的每月销售奖金的数据分布。一些销售代表在月末的时候没有及时的提交他们的销售记录。在月末之后可能有一些数据的更正和调整。从每个月的时间周期来看,数据库中存放的数据是不完整的。因为月末的数据没有被及时的更新导致了数据质量的负面性影响。
数据预处理的主要步骤是:
数据清洗:数据清洗的工作是清洗数据,通过填写缺失的数据,平滑噪音数据,识别需要去除的离群点,以及解决不一致性。
数据聚合:如果你的分析中数据是多来源的,则需要进行数据聚合工作,即聚合多种数据库,数据立方,以及文件。 一个给定概念的属性在不同数据库中可能有不同的命名,导致了不一致性和冗余。
数据删减:数据删减能得到一个数据集的删减集,比原来的数据小很多,但是能产生相同的(或几乎相同的)分析结果。数据删减包括维度删减数据块删减

  维度删减是一种获得原有数据的删减或者压缩集的数据编码方案。
比如,数据压缩技术(小波分析、主成分分析)属性子集选择(去除不相关属性),以及属性构造(如从原有数据集中建立小的更有用的属性)

  数据块删减:数据被可选的更小的数据替换,使用参数模型(如回归和对数-线性模型)或者非参数模型(直方图,聚类,抽样和数据聚集)。
数据转换

3.2 数据清洗

3.2.1缺失值

如何能填写这些属性的缺失值呢?

1. 忽略元组。常常在类别标签(假定是分类任务)缺失时这样做。

2 .手工填写缺失值。通常,这种方法耗时,并且对一个有很多缺失值的大型数据集来说并非可行。
3 .使用一个全局常数来填写缺失值。可以将所有缺失的属性值用同一个常数,例如标签“Unknown”或者”-∞”来表示。如果缺失值被“Unknown”替换,挖掘算法可能错误的认为形成了一个有趣的概念,因为他们都有一个共同的值”Unknown”.因此,即使这种方法很简单,却也并非不会出错。
4 .使用一个属性的中心性测量来填写缺失值。对于标准(对称的)数据分布,可以使用平均值,对偏斜数据分布可以使用中值。

5. 使用给定元组的类别相同的所有样本的均值或者中值。例如,如果根据顾客的信用风险来分类顾客,可以计算和该顾客的信用风险类别相同的所有顾客的收入均值,来填写给定元组的缺失的收入属性。如果对于给定类别数据分布是偏斜的,则使用中值。
6. 使用缺失值的最可能的值来填写。值可以由回归、使用Bayes公式的基于推理的工具,或者决策树推理。如,使用你的数据集中的其他顾客的属性,可以建立一个预测顾客缺失的收入值的决策树。最常用的方法

3.2.2噪声数据

如何来平滑数据以去除噪声呢?有如下技术:
1、装箱
    装箱方法通过参考数据值的“邻居”(即该值周围的数据)来平滑排好序的数据。

排好序的数据被分布到一系列的“桶”,或箱子中。因为装箱方法参考值的邻居,所以使用的是局部平滑。
有若干种装箱技术:
1)等频装箱。例如,价格属性先被排序,然后被分割到箱子的大小为3的等频箱子中。
2)箱子均值平滑。箱子中的每个值被箱子的均值替代。
3)箱子中值平滑。每个箱子值被箱子中值取代。
4)箱子边界平滑。箱子值被最靠近的边界值(最大值或最小值)取代。
箱子的宽度也大,平滑效果也越显著。另外,等宽度的箱子,即每个箱子间隔是个相同的常数也常被使用。箱子技术也是一种数据离散化的技术。

2、回归:
数据平滑也可以使用回归的方法,即将数据值通过一个函数来表达。线性回归是寻找两个属性(或变量)的最好的直线来通过一个属性预测另外一个。多元线性回归是线性回归的扩展。超过两个的属性被包含在其中,数据被拟合成一个高维超平面。
3、离群点分析:
通过聚类的方法可以检测离群点。例如,相似的值被分组,或“簇”。值落在簇之外的被认为是离群点。

3.2.3 数据清洗作为一个过程

数据清洗作为一个过程的第一步是不一致性检测。不一致性可能由多种原因导致:
1.设计很差的数据表
2.人为的输入错误
3.故意的错误(不希望泄露个人信息的回答者),
4.以及数据延迟(如过期的地址)
5.还可能因为不一致的数据表达和编码的不一致使用
6.其他的来源例如测量设备的错误导致的记录数据和系统错误
7.错误也可能发生在被用于和预期不同的目的时
还有一些不一致性是因为数据聚合导致的(一个给定的属性在不同数据库中使用不同的名称)

数据迁移工具允许做简单的转换例如将字符串“gender”变为”sex”.
    ETL(抽取/转换/加载工具)允许用户规定使用图形用户接口(GUI) 来转换。
    这些工具常常只支持有限的转换集,因此,我们还常常选择编写定制的脚本来做数据清洗的工作。
不一致性的两个步骤即不一致性检测和数据转换是迭代的过程。这个过程是修剪错误,很耗时。
3.3 数据聚合

数据挖掘经常需要数据聚合——合并多个数据库中的数据。
细致的聚合能帮助减少和避免结果数据集中的冗余和不一致性。并在随后的数据挖掘过程中提高准确率和速度。
3.3.1 实体识别问题

模式聚合和对象匹配可能比较复杂。如何将真实世界中的实体等价地匹配到多个数据源中?这就是实体识别问题。

3.3.2 冗余和关联性分析

冗余是数据聚合的另外一个重要的问题。一个属性(例如年收入)是冗余的,如果它能从其他的属性或属性集合推导得到。属性的不一致或者维度命名也会导致相应数据集中的冗余。
    这种冗余可以使用关联性分析来检测。给出两个属性,这种分析能基于可获得的数据测量一个属性在多强的程度上暗含了另一个。对于名词数据,可以使用卡方检验。对数值型数据,使用关联系数和协方差。
3.3.3元组复制

除了检测属性间的冗余,元组级别的冗余也需要被检测。不规范表的使用(一般是为了避免连接提高性能)是另一种数据冗余的来源。在不同的复制之间常常产生不一致性。因为不精确的数据输入或者更新了一部分而非全部的数据。

3.3.4 数据值和检测与解析的冲突
数据聚合还包含数据值冲突的检测和解析。例如,对于同一个真实世界实体,不同来源的属性值可能不同。可能是因为表达、刻度或者编码的不同。

3.4 数据删减

3.4.1 数据删减

删减数据块是将原有数据以可选的、更小的表格替换。分参数和非参数两种技术。
》参数的方法是,使用一个模型来评估数据,常常只有数据参数被存储,而非实际的数据。回归和对数——线性模型是两个参数技术的例子。
》非参数技术存放以直方图、聚类、抽样以及数据立方的形式表示的删减数据。
3.4.2 小波转换

离散小波转换(DWT)是一个线性信号处理技术。对一个数据向量X, 使用小波系数,转换成一个不同的数值向量X’。

DWT和离散傅里叶转换(DFT)关联性很强。DFT是一种包含正弦余弦的信号处理技术。一般情况下,DWT能得到更好的无损压缩。即如果在给定数据向量上应用DWT和DFT,DWT能得到原有数据更好的近似集。因此,得到一个相同的近似集,DWT需要更少的空间。
DWT的步骤:
1、输入数据向量的长度L必须是2的整数次幂。这个条件可以在必要时以0填充数据向量来满足。
2、每个转换包含应用两个函数。第一个应用一些数据平滑,例如求和或者加权平均。第二个使用一个加权差,为了表达数据的具体特征。
3、这两个函数被应用到向量X的每一个对(x2i , x2i+1). 这会得到两个长度为L/2的数据集。一般情况下,它们一个表达的是平滑的或者低频的输入数据的版本,另一个是高频的内容。
4、这两个函数被递归的应用到前一个循环得到的数据集上,直到数据集的长度变成2.
5、从前一次迭代的数据集中选择值,将其指明为转换数据的小波系数。
3.4.3 主成分分析

  假定要删减的数据包含n个属性或维度。主成分分析(PCA) 寻找K个n维正交向量,这些向量能最好的表达数据,k<n. 原有的数据因此被投影到一个更小的空间,得到删减的维度。
    不同于属性子集选择,PCA通过创建一个可选的更好的变量集,得到重要属性的联合。PCA常常揭示之前没有察觉的关系,因此得到通常没有的解释。
PCA的基本步骤:
1、将输入数据标准化,每个属性落在相同的值区间。确保属性在更大范围的不会占有更大权重。
2、计算K个正交向量,提供标准输入数据的基础。这是一些单位向量。每个点在方向上与其他的垂直。这些向量被称为主要成分。输入数据是主成分的线性组合。
3、主成分按重要性或者长度递减的次序存放。主成分作为数据的新的坐标轴的集合,提供重要的方差信息。即,排序的坐标轴中,第一个轴表示数据的最大方差,第二个表示次高的方差,以此类推。
4、因为主成分按重要性的降序排列,数据尺寸可以通过去除次要成分来减少,即具有更小方差信息的。使用最强的主成分,得到原有数据的很好的近似集的重构是可能的。
PCA能被应用于次序或者非次序属性。能处理稀疏和偏斜的数据。高维数据能被减少为2个。相比于小波转换,PCA能更好的处理稀疏数据,而小波转换更适合处理高维数据。
3.4.4 属性子集选择
剪枝式的启发式方法通常被用于属性子集选择。这些方法通常是贪心式的,策略是做一个局部最优的选择用以得到一个全局优化的解。

“最好的”(以及“最差的”)属性常常是使用统计显著性检验来决定,假定属性之间是互相独立的。许多其他的属性评估方法如决策树分类中的信息增益。
    基本的属性子集选择的启发式技术如下:
    1、逐步向前选择。该方法从一个属性的空集合开始作为删减集合。然后确定一个原有属性的最好属性,加入到删减集合中。每一次迭代,都把剩余属性集中最好的属性加入到该集合。
    2、逐步向后删除。该方法从全体属性集开始,每一次从中去除剩余属性集合中最差的属性。
    3、结合向前选择和向后删除的方法。
   4、决策树推导。
决策树算法(如ID3,C4.5, 和CART)最初被用于分类。决策树推导是创建一个流程图结构,每一个内部节点(非叶子节点)表示一个属性的检验,每一个分支对应于一个检验的结果,每一个外部节点(叶子节点)表示一个类别预测。在一个节点,算法选择最好的属性去将数据分割成单个的类别。
当决策树用于属性子集选择时,给定数据的树被创建。所有没有出现在树中的属性被认为是不相关的。出现在树中的属性构成了删减属性子集。
在某些情形下,可能需要基于一些属性创建一些新的属性。这类属性构造能帮助提高对高维数据的精确性和结构的理解。比如,基于属性height和width创建area属性。通过结合属性,属性构造能发现数据属性之间的缺失信息,有利于知识发现。
3.4.5 回归和对数——线性模型:参数数据删减

线性回归中,数据被拟合成一条直线。

对数——线性模型基于一个更小的维度联合的子集,来估计每个点在高维空间的概率。这样就能从低维空间构建高维数据空间。因此,模型可以用于维度删减(因为低维点常常比原有数据点占有更少的空间)以及数据平滑(因为低维空间的聚合估计比高维空间的估计对抽样变化主观度更小)

回归和对数——线性模型都能用在稀疏数据上,即使应用比较有限。两种方法都能处理偏斜数据,回归做的更好。对高维数据,回归的计算复杂度很高,而对数——线性模型对高于10维的数据有更好的可扩展性。
3.4.6 直方图

直方图使用箱子来近似数据分布,是一种流行的数据删减的形式。
3.4.7 聚类

聚类技术将数据元组当成对象。将对象划分成分组,或簇,在同一个簇中对象是相似的,跟其他簇中的对象是不相似的。相似性一般是基于距离函数,以对象在空间上的距离有多接近来定义。

3.4.8 抽样
最常用的数据删减的抽样技术包括:
1、无置换的简单随机抽样(SRSWOR)。方法是从N个元组中以概率1/N从D中抽样s个数据,每个元组被抽样的概率都相等。
2、有置换的简单随机抽样(SRSWR)。类似于SPSWOR, 除了每次从D中抽样一个元组之后,记录它然后替换。即元组被抽样之后,再放回D中下次还可以被继续抽到。
3、聚类样本。如果D中的元组被分成M个互不相交的簇,然后就可以抽样得到s个简单随机抽样簇,s<M.
4、分层抽样:如果D被分成互不相交的层,分层抽样可以通过对每个层进行简单随机抽样来生成。这能在数据偏斜的时候,选出具有代表性的样本。
3.4.9 数据立方聚合

3.5 数据转换和数据离散化

3.5.1 数据转换换策略概览

数据转换把数据转换或合并成适合数据挖掘的形式。数据转换的策略包括:
1、平滑。用于去除数据中的噪声。技术包括装箱,回归和聚类。
2、属性构造(或特征构造)。从给定属性中构造或增加新属性以便于挖掘过程。
3、聚合。在数据上应用聚合或者概括操作。例如,聚合每日销售数据以计算每月和每年的总体数据。通常这个步骤用在构造用于多层抽象级别数据分析的数据立方。

4、规范化。属性被按比例缩放到一个更小的范围,如-1.0 到 1.0, 或 0.0到1.0之间。
5、离散化。数值属性的原始值被区间标签或概念标签置换。标签能被递归的组织成高层概念。形成一个数值属性的概念层级。超过一个的概念层级可以被用来满足不同用户的需求。
6、名词数据的概念层级生成。例如steet属性可以扩展成高层概念,如city和country. 许多名词属性的层次是隐藏在数据库模式中的,可以在模式定义级别自动定义。

3.5.2 数据标准化

标准化数据会给所有属性相同权重。

3.5.3 装箱离散化技术

装箱技术没有使用分类信息,因此是无监督的离散化技术。它对人为指定的箱子个数以及离群点比较敏感。

3.5.4直方图分析的离散化技术

直方图也是一种无监督的离散化技术。

3.5.5 聚类、决策树以及关联分析离散化技术
  聚类分析是一种流行的数据离散化方法。一个聚类算法可以应用到数值属性上,将属性A的值分割成簇或分组。聚类考虑属性A的分布,和数据点的紧密度,因此会产生高质量的离散化结果。
  决策树分类技术也可以用来做数据的离散化。这种技术采用自顶向下的分割方法。不同于其他的前面提到的方法,这是一种有监督的离散化方法,即使用分类标签的信息。
  关联分析也可以用于数据离散化。ChiMerge是一种基于卡方分布的离散化方法。之前的离散化方法中,都是采用一种自顶向下的分割策略。
3.5.6 名词属性的概念层次生成

3.6 总结
数据质量包括精确性、完整性、一致性、时效性、可信性和可解释性。质量的评估基于对数据的预期使用。


posted @ 2018-08-08 12:57  Element_01  阅读(1650)  评论(0编辑  收藏  举报