2

在现实生活中,我们会遇到各种各样的数据,而且其中绝大多数的数据是“有毛病”的,不利于后期进行分析,所以我们在分析前需要进行数据的预处理。

3.1 数据预处理:概述

3.1.1 数据质量

数据质量包括准确性完整性一致性时效性可信性可解释性

3.1.2 数据预处理的主要任务

数据清理数据集成数据归约数据变换

  • 数据清理通过填写缺失值,光滑噪声数据,识别或删除离群点,并解决不一致性“清理”数据。
  • 数据集成将多个数据库、数据立方体或文件集成在一起,主要问题是代表同一概念的属性在不同数据库中可能具有不同的名字,导致不一致性和冗余。
  • 数据归约得到数据集的简化表示,它小得多,但能产生同样的(或几乎同样的)分析结果。数据归约策略包括维归约数值归约

    • 维归约:使用数据编码方案,以便得到数据的简化或“压缩”表示方式。包括数据压缩技术(例如,小波变换和主成分分析),以及属性子集选择(例如,去掉不相关的属性)和属性构造(例如,从原属性导出更有用的小属性集)
    • 数值归约:使用参数模型(例如,回归或对数线性模型等)或非参数模型(例如,直方图、聚类和抽样等),用较小的表示取代数据。
  • 数据变换包括规范化数据离散化概念分层产生

3.2 数据清理

数据清理例程试图填充缺失的值、光滑噪声并识别离群点,纠正数据中的不一致。

3.2.1 缺失值

处理缺失值的方法:

  1. 忽略元组
  2. 人工填写缺失值
  3. 使用一个全局常量填充缺失值
  4. 使用属性的中心度量(如均值或中位数)填充缺失值
  5. 使用与给定元组属于同一类的所有样本的属性均值或中位数
  6. 使用最可能的值填充缺失值:可以用回归、使用贝叶斯形式化方法的基于推理的工具或决策树归纳确定。

注:某些情况下,缺失值并不表示错误,例如,一个没有驾驶证的人去办理信用卡,则驾驶证栏不会填

3.2.2 噪声数据

噪声是被测量的变量的随机误差或方差。
数据光滑技术包括:

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

    • 用箱均值光滑:箱中每一个值都被替换为箱中的均值
    • 用箱中位数光滑:箱中每一个值都被替换为箱中的中位数
    • 用箱边界光滑:给定箱中的最大值和最小值作为箱边界,箱中每一个值都被替换为最近的边界值。
  • 回归
  • 离群点分析:可通过如聚类来检测离群点

以上方法也可用于数据离散化和数据归约

3.2.3 数据清理化为一个过程

数据清理首先进行偏差检测,使用任何可能具有的关于数据性质的元数据(关于数据的数据),还要防止字段过载,还应当根据唯一性规则连续性规则空值规则考察数据。

  • 唯一性规则:给定属性的每个值都必须不同于该属性的其他值
  • 连续性规则:属性的最低和最高值之间没有缺失的值,并且所有的值还必须唯一
  • 空值规则:说明空白、问号、特殊符号或指示空值条件的其他串的使用,以及如何处理这样的值

偏差检测的商业工具:

  • 数据清洗工具
  • 数据审计工具

数据迁移工具:

  • EIL工具

3.3 数据集成

好的数据集成有助于提高其后挖掘过程的准确性和速度。

3.3.1 实体识别问题

例如,计算机如何确信一个数据库中的customer_id与另一个数据库中的cust_number指的是相同属性?每个属性的元数据包括名字、含义、数据类型和取值范围,以及空值规则。这样的元数据可以用来避免模式集成的错误。

3.3.2 冗余和相关分析

有些冗余可以被相关分析检测到。给定两个属性,这种分析可以根据可用的数据,度量一个属性能有多大程度蕴含另一个。
对于标称数据,使用$\chi^{2}$(卡方)检验,对于数值属性,使用相关系数协方差`。

1. 标称数据的$\chi^{2}$相关检验

假设A有C个不同值$a_1,a_2,...,a_c$,B有r个不同值$b_1,b_2,...,b_r$。用A和B描述的数据元组可以用相依表显示,其中A的C个值构成列,B的r个值构成行。令$(A_i, B_j)$表示属性$a_i, b_j$的联合事件,即$(A = a_i, B = b_j)$。每个可能的$(A_i, B_j)$联合事件都在表中有自己的单元。$\chi^{2}$值(又称$Pearson \chi^{2}$统计量)可以用下式计算:

$$ \chi^{2}=\sum_{i=1}^c \sum_{j=1}^r \frac{(o_{ij}-e_{ij})^2}{e_{ij}} $$

其中,$o_{ij}$是联合事件$(A_i, B_j)$的观测频度(即实际计数),而$e_{ij}$是$(A_i, B_j)$的期望频度,可以用下式计算:

$$ e_{ij} = \frac{count(A=a_i)*count(B=b_j)}{n} $$

其中,$n$是数据元组的个数,$count(A=a_i)$是A上具有$a_i$的元组个数,$count(B=b_j)$是B上具有$b_j$的元组个数。

注:对$\chi^2$值贡献最大的单元是其实际计数与期望计数很不相同的单元
$\chi^2$统计检验假设A和B是独立的。检验基于显著水平,具有自由度$(r-1)(c-1)$。如果可以拒绝该假设,则说明A和B是统计相关的。

2. 数值数据的相关系数

可以通过计算属性A和B的相关系数(又称$Pearson$积矩系数)估计这两个属性的相关度$r_{a,b}$

$$ r_{a,b} = \frac{\sum_{i=1}^n (a_i - A_{mean})(b_i - B_{mean})}{n\sigma_A \sigma_B} = \frac{\sum_{i=1}^n (a_i b_i) - nA_{mean}B_{mean}}{n\sigma_A \sigma_B} $$

其中,$n$是元组的个数,$a_i$和$b_i$分别是元组$i$上A和B的值,$A_{mean}$和$B_{mean}$分别是A和B的均值,$\sigma_A$和$\sigma_B$的标准差,而$\sum(a_ib_i)$是AB的叉积和。
注:$-1≤r_{A,B}≤+1$。如果$r_{A,B}$大于0,则A和B是正相关的,意味着A值随B值的增加而增加。值越大,相关性越强。因此,一个较高的$r_{A,B}$值表明A或B可以作为冗余删除。

3. 数值数据的协方差

考虑两个数值属性A和B和几次观测的集合$\{(a_1,b_1),...,(a_n,b_n) \}$。A和B的均值又称为期望,即:

$$ E(A) = A_{mean} = \frac{\sum_{i=1}^n a_i}{n}, E(B) = B_{mean} = \frac{\sum_{i=1}^n b_i}{n} $$

A和B的协方差定义为:

$$ Cov(A, B) = E((A-A_{mean})(B-B_{mean})) = \frac{\sum_{i=1}^n(a_i-A_{mean})(b_i-B_{mean})}{n} $$

协相关系数$r_{A,B}$:

$$ r_{A,B} = \frac{Cov(A,B)}{\sigma_A \sigma_B} $$

其中,$\sigma_A$和$\sigma_B$分别是A和B的标准差

$$ Cov(A,B) = E(A,B) - A_{mean}B_{mean} $$

两个趋于一起改变的属性A和B,如果A大于$A_{mean}$,则很可能B大于$B_{mean}$,因此A,B的协方差为正,如果A和B是独立的,则$E(A,B)=E(A)-E(B)$,所以$Cov(A,B)=E(A*B)-A_{mean}B_{mean}=E(A)*E(B)-A_{mean}B_{mean} = 0$

3.3.3 元组重复

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

3.3.4 数据值冲突的检测与处理

导致数据值冲突的原因可能因为表示、尺度或编码不同。
属性也可能在不同的抽象层,其中属性在一个系统中记录的抽象层可能比另一个系统中“相同的”属性低。

3.4 数据归约

3.4.1 数据归约策略概述

数据归约策略包括维归约数量归约数据压缩
维归约减少所考虑的随机变量或属性的个数。维归约方法包括小波变换主成分分析属性子集选择
数量归约用替代的较小的数据表示形式替换原数据。
数据压缩使用变换,以便得到原数据的归约或“压缩”表示。如果原数据能够从压缩后的数据重构,而不损失信息则称无损的。如果能近似重构原数据则称有损的

3.5 数据变换与数据离散化

3.5.1 数据变化策略概述

数据变换策略包括:

  1. 光滑:去掉数据中的噪声。包括分箱、回归和聚类
  2. 属性构造(或特征构造):可以由给定的属性构造新的属性并添加到属性集中,以帮助挖掘过程。
  3. 聚集:对数据进行汇总和聚集
  4. 规范化:吧属性数据按比例缩放,使之落入特定小区间。
  5. `离散化:数值属性的原始值用区间标签或概念标签替换。
  6. 由标签数据产生概念分层:属性,如:stree,可以泛化到较高的概念层,如city。

注:数据预处理的主要任务之间存在许多重叠


橙茗
26 声望5 粉丝

python c