数据预处理主要任务

数据清洗(Data cleaning):填充空值、平滑噪声、移出异常…

数据整合(Data integration):整合多个数据库、数据立方或者文件等

数据缩减(Data reduction):降维、数量缩减、数据压缩

数据转化(Data transformation):数据标准化、层级划分

数据清洗

  1. 不完整数据:例如数据缺属性值等,4种常规方法:
    1. 给一个新值类别,比如”unknown”
    2. 给这个属性的均值、众数或其他统计指标
    3. 样本聚类,给这一类样本中这个属性的均值、众数或其他统计指标
    4. 用贝叶斯或者决策树等去推测此属性可能的
  2. 噪声:例如薪水为数据预处理 - 图1元,4种常规方法:
    1. 分桶(平滑)
    2. 回归(平滑)
    3. 聚类(检测与移除)
    4. 机器计算结合人工打标(检测与移除)
  3. 矛盾数据:例如年龄为数据预处理 - 图2岁,但生日在数据预处理 - 图3年。
    1. 写规则整理数据
  4. 非合理数据:例如每个人的生日数据都是1月1日。
    1. 进一步研究或写规则整理数据

分桶

数据预处理 - 图4

数据整合

由于数据从不同源头来,可能出现很多问题比如格式不一或冗余等,比如:鞋号,EU 42和UK 8.0及JP 260其实是表示同样大小鞋子;一个数据来源包含鞋盒长宽数据,另一数据源含鞋盒底面积。

冗余数据可用 correlation analysis 和 covariance analysis来检测

Correlation analysis(针对分类型数据)

数据预处理 - 图5检测:数据预处理 - 图6数据预处理 - 图7为观测值数据预处理 - 图8为期望值

chi-square.png

方差Variance)

数据预处理 - 图10

协方差Covariance)

数据预处理 - 图11

其中,数据预处理 - 图12数据预处理 - 图13,其实就是期望与加权均值一致。如果数据预处理 - 图14数据预处理 - 图15相互独立,则数据预处理 - 图16

协方差.png

协方差矩阵[Covariance matrix]

由数据集中两两变量的协方差组成。矩阵的第数据预处理 - 图18个元素是数据集中第数据预处理 - 图19数据预处理 - 图20个元素的协方差。例如,三维数据的协方差矩阵如下:

数据预处理 - 图21

协方差矩阵.png

Correlation Analysis(针对数值型数据)

数据预处理 - 图23数据预处理 - 图24的相关性通过协方差与他们的标准差获得:数据预处理 - 图25

如果数据预处理 - 图26则两者正相关,反之负相关,为0则两者独立。

数据缩减

目的:1、降维;2、数值减少;3、数据压缩

方法:

  1. Regression and Log-Linear Models
  2. Histograms, clustering, sampling
  3. Data cube aggregation
  4. Data compression

数据转化

目的:1、标准化 2、概念层次生成

  1. 平滑:将噪声从数据中移除
  2. 属性/特征构造:从旧特征构造新特征,比如由长宽数据构造面积数据
  3. 整合:概要(比如各种统计指标均值,方差…),数据立方构造
  4. 标准化:min-max、z-score、十进制缩放、softmax…
  5. 离散化:分箱、直方图分析、聚类分析、决策树分析、相关性分析

标准化

min-max 标准化:数据预处理 - 图27

z-score 标准化:数据预处理 - 图28

十进制缩放标准化:数据预处理 - 图29,这里数据预处理 - 图30是满足数据预处理 - 图31的最小整数

softmax:数据预处理 - 图32

数据标准化又叫作数据归一化,是数据挖掘过程中常用的数据预处理方式。当我们使用真实世界中的数据进行分析时,会遇到两个问题:

  • 特征变量之间的量纲单位不同
  • 特征变量之间的变化尺度(scale)不同

特征变量的尺度不同导致参数尺度规模也不同,带来的最大问题就是在优化阶段,梯度变化会产生震荡,减慢收敛速度。经标准化的数据,各个特征变量对梯度的影响变得统一,梯度的变化会更加稳定,如下图

标准化.png

总结起来,数据标准化有以下三个优点:

  • 数据标准化能够是数值变化更稳定,从而使梯度的数量级不会变化过大。
  • 在某些算法中,标准化后的数据允许使用更大的步长,以提高收敛地速度。
  • 数据标准化可以提高被特征尺度影响较大的算法的精度,比如k-means、kNN、带有正则的线性回归。

Source

https://github.com/chmx0929/UIUCclasses/blob/master/412DataMining/PDF/03Preprocessing.pdf