4.1 数据预处理

Data Preprocessing 在使用数据进行建模或分析前,进行标准化、离散化、抽样、降维、去噪等操作,从而提高数据挖掘的质量

4.1.1 标准化

Normalization 将数据按照一定比例缩放,使数据落入一个特定的小区间。例如归一化处理 -> [0, 1]

作用:加快模型的收敛速度,提高模型精度

1. Min-max

4. 数据挖掘 - 图1
数据恒大于0, 分布均匀

2. Z-Score

4. 数据挖掘 - 图2
mu表示均值,sigma表示方差(表示数据离散程度:数据均差平方的平均值的平方根)
数据中轴为0, 对称分布

3. Decimal scaling 小数定标

4. 数据挖掘 - 图3
j表示数据中绝对值最大的数的变为小数需要移动小数点次数,例如99 ->j=2
数据恒大于0,分布均匀

4. Mean 均值归一化

4. 数据挖掘 - 图4
中轴0对称,分布均匀(常用)

5. 向量

4. 数据挖掘 - 图5

6. 指数转换

数据分布不均

  • log10

4. 数据挖掘 - 图6

  • Softmax:数据变化递增

4. 数据挖掘 - 图7

  • Sigmoid:数据变化递减

4. 数据挖掘 - 图8


4.1.2 离散化

数据离散化,也称为数据分组,分组数据通常需要先进行排序

  • 等宽分组,即根据固定宽度(范围)进行分组:数据分布不均匀
    (1, 3, 10, 11, 21) 分四组,范围分别是 [1, 5], (5, 10], (10, 15], (15, 20]

  • 等频分组/每个分组变量个数相同:可能将相同变量分到不同组中

  • 但变量分组:将相同变量分到一个组

基于信息熵分组

(1)信息量:信息论之父Shannon认为,信息是用来消除随机不确定性的东西,即信息量表示这个信息消除不确定性的程度

信息量大小与事件发生的概率成反比:
4. 数据挖掘 - 图9
p表示x发生的概率

信息量度量的是:一个具体事件发生所带来的信息

(2)熵:表示在结果出来之前
对可能产生的信息量的期望。考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望
4. 数据挖掘 - 图10
按信息熵分组:**按照随机变量的所有可能取值划分数据的总熵E,是所有时间熵的加权平均
4. 数据挖掘 - 图11
wi = mi/m 表示第x个事件出现的比例,mi是第i个可能取值出现的次数,m为所有取值出现的总次数

(Note: 熵表示样本集合的不确定性,熵越大,则样本的不确定性越大)

具体做法:

  • 对属性A的所有取值从小到大排序
  • 遍历属性A的每个值Vi,将属性A的值分为两个区间S1、S2,使得将其作为分隔点划分数据集后的熵S最小
  • 划分后的熵大于设置的阈值且小于指定的数据分组个数时,递归对S1、S2执行上两步骤中的划分

4.1.3 数据抽样

  • 统计学解释:实现数据的调查和分析
  • 数据挖掘:压缩数据量,降低资源开销。从海量数据中产生训练集(train)、测试集(test)、验证集(validation set)
    • 训练集用于训练数据
    • 测试集用于衡量模型的统计指标,准确率、召回率(不可加入训练集,否则模型过拟合)
    • 验证集用于验证模型(可选项)

1. 随机抽样

Random Sampling

  • 有放回抽样
  • 无放回抽样

2. 分层抽样

Stratified Sampling
当数据总体由不同类型的对象组成,每种类型数据差别较大。这时随机抽样无法保证各种类型的均衡性

  • 等个数抽样:每组抽取相同数量
  • 等比例抽样:每组抽样个数满足某种比例关系

3. 系统抽样

System Sampling,又称为机械抽样、等距抽样

  1. 将数据按照一定顺序分为长度相等的n个分区(每个部分长度为l)
  2. 从第一部分随机选取k个数据
  3. 对每个数据,间隔l的距离,从每个分区选取数据

4. 渐进抽样

当合适的样本容量无法确定时,有时需要自适应(Adaptive)或渐进抽样(Progressive Sampling)方法。

渐进抽样不需要一开始确定样本容量,但需要一个评估方法,用于确定样本容量增大到多少时最为合适。例如:使用渐进抽样来学习一个线性回归预测模型


4.1.4 数据降维

在构建机器学习模型时,有时特征极其复杂,高达几千维,模型训练将耗费大量的资源;同时会出现多重共线性,稀疏性的问题

降维:在不损失数据本身意义时,简化属性、去噪、去冗余,以求取更典型的特征

主要方法

  • 线性降维方法:主成分分析(PCA)、线性判断分析(LDA)
  • 非线性降维:基于核函数的KPCA/KDA和基于特征值的ISOMAP等

主成分分析 PCA

Principle Component Analysis 是一种统计方法。通过正交变换,将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的变量被称为主成分。

数据分析中,常用PCA进行数据降维,他可以在指定的损失范围内最大限度的简化属性

PCA核心知识点:协方差矩阵和特征值分解
方差表示一组数据的离散程度
协方差:表示两组数据(特征)随机变量x,y之间的相互关系
4. 数据挖掘 - 图12
三种计算结果:

  • 大于0,正相关
  • 等于0,不相关
  • 小于0,负相关

由于协方差只能表示两个随机变量之间的相互关系。如果有多个随机变量(特征),则需要使用协方差矩阵。例如三个变量下x,y,z
4. 数据挖掘 - 图13

PCA降维过程

  1. 对特征进行标准化
  2. 计算协方差矩阵
  3. 计算协方差矩阵的特征值和特征向量
  4. 选取最大的k个特征值对应的特征向量,得到特征向量矩阵
  5. 将数据变换为k维,得到新的数据集

4.1.5 数据清洗

1. 不合格数据修正

  • 手动修改
  • 代码异常捕获处理

    2. 缺失值填充

  • 忽略改行数据

  • 使用固定值填充,NULL/None
  • 中心值填充,均值/中位数
  • 最流行的方法:使用回归、决策树等工具推理

3. 噪声值处理

4. 离群点处理

离群点即异常值,直接删除

离群值检测方法:

  • 正态分布检测

4. 数据挖掘 - 图14

  • 模型检测