第三章:数据预处理

第三章:数据预处理

3.1 数据预处理:概述

3.1.1 为什么要进行数据的预处理

  • 现实世界的数据是“肮脏的”
    • 不完整的:有些感兴趣的属性缺少属性值,或仅包含聚集数据
    • 含噪声的:包含错误或者“孤立点”
    • 不一致的:在编码或者命名上存在差异
  • 没有高质量的数据,就没有高质量的挖掘结果
  • 数据质量
    • 准确性
    • 完整性
    • 一致性
    • 时效性:及时更新
    • 可信性:数据是否被用户信赖
    • 可解释性:数据是否容易理解

3.1.2 数据预处理的主要任务

  • 数据清理
    • 空缺值,噪声数据,删除孤立点,解决不一致性
    • 如果用户认为数据是脏的,那么可信性会降低
  • 数据集成
    • 集成多个数据库、数据立方体或文件
  • 数据归约
    • 得到数据集的压缩表示,但可以得到相同或相近的结果
    • 维归约:小波变换,主成分分析,属性子集选择,属性构造
    • 数值规约:参数模型,非参数模型
  • 数据变换
    • 规范化和聚集
  • 数据离散化
    • 将连续数据进行离散处理

3.2 数据清理

3.2.1 空缺值

  • 忽略元组
    • 当类标号缺少时通常这么做(假定挖掘任务设计分类或描述),当每个属性缺少值的百分比变化很大时,它的效果非常差。
  • 人工填写空缺值
    • 工作量大,可行性低
  • 使用一个全局变量填充空缺值:比如使用$unknown$或$-∞$替换
    • 尽管简单,但程序可能会认为这些空缺形成了一个有趣的概念:unknown
    • 也可能会使数据有偏
  • 使用属性的平均值填充空缺值
    • 可能有偏
  • 使用与给定元组属同一类的所有样本的平均值
    • 可能有偏
  • 使用最可能的值填充空缺值
    • 使用像Bayesian公式或判定树这样预测的方法,可能有偏
  • 相当场合下,数据有空缺不意味着错误

3.2.2 噪声

  • 噪声:一个测量变量中的随机错误或偏差
  • 处理噪声数据
    • 分箱binning:
      • 首先排序数据,并将他们分到等深的箱中然后可以按箱的平均值平滑、按箱中值平滑、按箱的边界平滑等等
    • 回归regression:
      • 用回归函数预测
    • 离群点分析outlierAnalysis:
      • 利用聚类检测离群点

3.2.3 数据清理作为一个过程

  • 偏差检测
    • 找到偏差原因:人工输入错误,糟糕的输入表单,用户有意输错,数据过时,系统错误比如编码
    • 找到元数据
    • 字段过载
    • 唯一性规则
    • 连续性规则
    • 空值规则

3.3 数据集成

困难:数据语义的多样性和结构

3.3.1 实体识别问题

  • 匹配来自不同数据源的现实世界的实体
  • 检测并解决数据值的冲突
    • 对现实世界中的同一实体,来自不同数据源的属性值可能是不同的
    • 可能的原因:不同的数据表示,不同的度量等等

3.3.2 冗余和相关分析

  • 标称数据的$\chi^2$相关检验
    • 相依表:alt text
    • 期望频度:$e_{ij}=\frac{N(A=a_i)N(B=b_j)}{n}$
    • 观测频度:相依表中的实际计数$\sigma_{ij}$
    • $Pearson \chi^2$统计量:$\chi^2 = \sum_{i}\sum_{j}\frac{(\sigma_{ij}^2-e_{ij})}{e_{ij}}$
  • 数值数据的相关系数
    • $Pearson$积矩系数:$r_{A,B}=\frac{\sum_{i}(a_i-\bar{A})(b_i-\bar{B})}{n\sigma_A\sigma_B}$
    • $R_{A,B}=0$意味着两类属性独立
    • $R_{A,B}$越接近1,意味着某一个越可能是冗余项,越接近-1,意味着存在相互阻碍的效应
    • 相关性不蕴含因果关系
  • 数据数值的协方差
    • 协方差:$Cov(A,B)=\frac{\sum_{i}(a_i-\bar{A})(b_i-\bar{B})}{n}$
    • $r_{A,B}=\frac{Cov(A,B)}{\sigma_A\sigma_B}$
    • $Cov(A,B)=E(AB)-E(A)E(B)$
    • 描述两个属性如何一起变化
    • 协方差0不蕴含独立性

3.3.3 元组重复

  • 元组级检测重复
  • 去规范化表的使用

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

  • 同一实体的不同数据源的属性值不同

3.4 数据规约

3.4.1 数据规约策略概述

  • 用来得到数据集的归约表示,它小得多,但可以产生相同的(或几乎相同的)分析结果
    • 维归约: 减少考虑的属性个数
    • 数量规约:用较小的数据表示形式替代原数据,分为 参数的和非参数的
    • 数据压缩:使用某种变换

3.4.2 小波变换

  • 离散小波变换DWT
    • 变换后的数据可以仅存放一小部分最强的小波系数
    • 对于相同的近似,DWT比DFT需要的空间少,局部性更好
    • 适合高维数据
  • 属于维规约,保存小波较大的系数进行原始数据的压缩,主要用于图像分析中。
  • 属于有损压缩

3.4.3 主成分分析

  • PCA方法&K-L方法
    • 搜索k个最能代表数据的n维正交向量
    • 适合处理稀疏的和倾斜的数据
    • 可以作为多元回归和聚类分析的输入
  • 找到一个投影,其能表示数据的最大变化
  • 属于维规约

3.4.4 属性子集选择

  • 特征筛选
  • 检索所有可选的子集不现实,一般采用启发式算法或贪心算法,往往可以逼近最优解
    • 逐步向前选择/逐步向后删除
    • 决策树算法
    • 信息增益算法
      • 信息熵:$H(X)=-\sum_{x \in X}{p(x)logp(x)}$
      • 条件信息熵:$H(Y|X)=\sum_{x\in X}p(x)H(Y|X=x)=-\sum_{x\in X}p(x)\sum_{y \in Y}p(y|X=x)logp(y|X=x)$
      • 信息增益:描述已知X基础上节约多少信息刻画Y,$IG(Y|X)=H(Y)-H(Y|X)$
      • 选择对分类Y信息增益大的X属性X

3.4.5 回归和对数线性模型:参数化数据规约

  • 回归:将数据拟合成直线
  • 对数线性模型:近似离散的多维概率分布

3.4.6 直方图

  • 将数据划分成不相交的桶
  • 规则:
    • 等宽
    • 等深
    • V-最优
    • MaxDiff

3.4.7 聚类

  • 将数据元组看成对象,将他们划分成簇,每一簇的对象互相相似
  • 簇的直径越大,质量越好

3.4.8 抽样

  • 无放回简单随机抽样SRSWOR
  • 有放回简单随机抽样SRSWR
  • 簇抽样
  • 分层抽样

3.4.9 数据立方体聚集

  • 联机数据分析和数据挖掘

3.5 数据变换和数据离散化

3.5.1 数据变换策略概述

  • 光滑smoothing:去掉数据中的噪声,包括分箱,聚类和回归
  • 属性构造:由给定属性生成新的属性
  • 聚集:汇总
  • 规范化:将数据落入一个小的区间
  • 离散化:用原始数据用概念标签替换
  • 概念分层:将属性根据标签泛化到更高的概念层

3.5.2 通过规范化变换数据

  • 避免对度量单位选择的依赖
  • 最大-最小化规范
    • $Normal(v)=min(A)+\frac{x-min(X)}{max(X)-min(X)}(max(A)-min(A))$
    • 将数据集X映射到区间A
  • 零均值规范化
    • $Normal(v)=\frac{x-\bar X}{\sigma_X}$
    • 实际最大值最小值未知,或者离群点影响对最大最小规范化影响太大时,该方效果较好

3.5.3 通过分箱离散化

  • 不使用类信息,非监督的离散化技术
  • 易受离群点影响

3.5.4 通过直方图离散化

  • 非监督的离散化技术
  • 可以将直方图算法递归地使用

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

  • 聚类
    • 自顶向下划分
    • 自底向上合并
  • 决策树
    • 是监督的
  • 相关性度量
    • ChiMerge方法:自底向上的策略

3.5.6 标称数据的概念分层

  • 概念分层:找到属性的偏序关系
    • 模式级地说明属性的部分序
    • 显式数据分层说明分层结构的一部分
    • 说明属性集但不说明它们的偏序