第三章:数据预处理
第三章:数据预处理
3.1 数据预处理:概述
3.1.1 为什么要进行数据的预处理
- 现实世界的数据是“肮脏的”
- 不完整的:有些感兴趣的属性缺少属性值,或仅包含聚集数据
- 含噪声的:包含错误或者“孤立点”
- 不一致的:在编码或者命名上存在差异
- 没有高质量的数据,就没有高质量的挖掘结果
- 数据质量
- 准确性
- 完整性
- 一致性
- 时效性:及时更新
- 可信性:数据是否被用户信赖
- 可解释性:数据是否容易理解
3.1.2 数据预处理的主要任务
- 数据清理
- 空缺值,噪声数据,删除孤立点,解决不一致性
- 如果用户认为数据是脏的,那么可信性会降低
- 数据集成
- 集成多个数据库、数据立方体或文件
- 数据归约
- 得到数据集的压缩表示,但可以得到相同或相近的结果
- 维归约:小波变换,主成分分析,属性子集选择,属性构造
- 数值规约:参数模型,非参数模型
- 数据变换
- 规范化和聚集
- 数据离散化
- 将连续数据进行离散处理
3.2 数据清理
3.2.1 空缺值
- 忽略元组
- 当类标号缺少时通常这么做(假定挖掘任务设计分类或描述),当每个属性缺少值的百分比变化很大时,它的效果非常差。
- 人工填写空缺值
- 工作量大,可行性低
- 使用一个全局变量填充空缺值:比如使用$unknown$或$-∞$替换
- 尽管简单,但程序可能会认为这些空缺形成了一个有趣的概念:unknown
- 也可能会使数据有偏
- 使用属性的平均值填充空缺值
- 可能有偏
- 使用与给定元组属同一类的所有样本的平均值
- 可能有偏
- 使用最可能的值填充空缺值
- 使用像Bayesian公式或判定树这样预测的方法,可能有偏
- 相当场合下,数据有空缺不意味着错误
3.2.2 噪声
- 噪声:一个测量变量中的随机错误或偏差
- 处理噪声数据
- 分箱binning:
- 首先排序数据,并将他们分到等深的箱中然后可以按箱的平均值平滑、按箱中值平滑、按箱的边界平滑等等
- 回归regression:
- 用回归函数预测
- 离群点分析outlierAnalysis:
- 利用聚类检测离群点
- 分箱binning:
3.2.3 数据清理作为一个过程
- 偏差检测
- 找到偏差原因:人工输入错误,糟糕的输入表单,用户有意输错,数据过时,系统错误比如编码
- 找到元数据
- 字段过载
- 唯一性规则
- 连续性规则
- 空值规则
3.3 数据集成
困难:数据语义的多样性和结构
3.3.1 实体识别问题
- 匹配来自不同数据源的现实世界的实体
- 检测并解决数据值的冲突
- 对现实世界中的同一实体,来自不同数据源的属性值可能是不同的
- 可能的原因:不同的数据表示,不同的度量等等
3.3.2 冗余和相关分析
- 标称数据的$\chi^2$相关检验
- 相依表:
- 期望频度:$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 标称数据的概念分层
- 概念分层:找到属性的偏序关系
- 模式级地说明属性的部分序
- 显式数据分层说明分层结构的一部分
- 说明属性集但不说明它们的偏序