数据预处理

数据预处理

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

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

主要任务

  1. 数据清理

    • 空缺值,噪声数据,删除孤立点,解决不一致性

    • 如果用户认为数据是脏的,那么可信性会降低

  2. 数据集成

    • 集成多个数据库、数据立方体或文件
  3. 数据归约

    • 得到数据集的压缩表示,但可以得到相同或相近的结果

    • 维归约:小波变换,主成分分析,属性子集选择,属性构造

    • 数值规约:参数模型,非参数模型

  4. 数据变换

    • 规范化和聚集
  5. 数据离散化

    • 将连续数据进行离散处理

数据清理

  1. 空缺值

    • 忽略元组 :当类标号缺少时通常这么做(假定挖掘任务设计分类或描述),当每个属性缺少值的百分比变化很大时,它的效果非常差。

    • 人工填写空缺值

      • 工作量大,可行性低

      • 使用一个全局变量填充空缺值:比如使用$unknown$或$-∞$替换

        • 尽管简单,但程序可能会认为这些空缺形成了一个有趣的概念:unknown,也可能会使数据有偏
    • 使用属性的平均值填充空缺值:可能有偏

    • 使用与给定元组属同一类的所有样本的平均值:可能有偏

      • 使用最可能的值填充空缺值:使用像Bayesian公式或判定树这样预测的方法,可能有偏
    • 相当场合下,数据有空缺不意味着错误

  2. 噪声:一个测量变量中的随机错误或偏差

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

数据集成

困难:数据语义的多样性和结构带来的实体识别问题

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

冗余和相关分析

  • 标称数据的$\chi^2$相关检验
    • 相依表:![alt text](D:/Desktop/myfile/UESTC undergraduate course/Grade Ⅳ/数据挖掘和大数据分析/notes/认识数据和数据预处理/image-5.png)
    • 期望频度:$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}-e_{ij})^2}{e_{ij}}$
  • 数值数据的相关系数
    • $Pearson$相关系数:$r_{A,B}=\frac{\sum_{i}(a_i-\bar{A})(b_i-\bar{B})}{(n-1)\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不蕴含独立性

数据规约

用来得到数据集的归约表示,它小得多,但可以产生相同的(或几乎相同的)分析结果

  • 维归约: 减少考虑的属性个数
  • 数量规约:用较小的数据表示形式替代原数据,分为 参数的和非参数的
  • 数据压缩:使用某种变换

小波变换

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

PCA方法&K-L变换

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

特征筛选

目的:通过删除不相干的属性或维减少数据量

挑战:d个属性有$2^d$个可能的子集 ,枚举所有几乎不可行

策略:启发式的方法:逐步向前选择,逐步向后删除,向前选择和向后删除相结合

算法:信息增益, 互信息, Relief,卡方分析

直方图

将数据划分成不相交的桶

规则:等宽,等深,V-最优,MaxDiff

回归

回归:将数据拟合成直线

对数线性模型:近似离散的多维概率分布

聚类

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

抽样

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

数据变换

最小-最大规范化

将数据集X映射到区间A

$Normal(v)=min(A)+\frac{x-min(X)}{max(X)-min(X)}(max(A)-min(A))$​

零均值规范化

实际最大值最小值未知,或者离群点影响对最大最小规范化影响太大时,该方效果较好

$Normal(v)=\frac{x-\bar X}{\sigma_X}$​

离散化和概念分层

  1. 分箱(binning):分箱技术递归的用于结果划分

  2. 直方图分析(histogram):直方图分析方法递归的应用于每一部分,可以自动产生多级概念分层。

  3. 聚类分析:将数据划分成簇,每个簇形成同一个概念层上的一个节点,每个簇可再分成多个子簇,形成子节点。

  4. 基于信息熵的方法等