数据挖掘分析之数据预处理

目录

为什么要进行数据预处理

什么是数据预处理

如何进行数据预处理

min-max规范化

 Z-score标准化

小数定标规范化

正态变换

 分类-标志变量

分类-数值变量

连续数值分段

删除无用变量

删除重复记录


数据挖掘概述章节中,提到了跨行业数据挖掘分析标准化流程CRISP-DW,其中有数据理解、和数据准备环节,数据预处理即是针对这两个环节的处理。

为什么要进行数据预处理

首先思考一下,为什么要进行数据预处理,不能直接拿来用吗?

从数据挖掘命题自身出发,在确定了业务目标后,核心在于建立数据挖掘模型,不同的数据挖掘模型所需要的数据格式及要求均不同,而模型所需要的数据则不会那么标准的直接提供给我们,因此数据预处理是一个必要且必须的环节。

从数据本身出发,由于数据的产生途径、定义方式、存储介质、数据质量等等不尽相同,因此也有必要针对不同类型的数据进行标准化的预处理。

什么是数据预处理

简单来说就是基于业务/建模的要求,对数据进行清理、转换、填充的归一化处理

如何进行数据预处理

从数据预处理的定义来讲,其处理是基于业务/建模的要求来出发,所以首先需要明确数据需求方的具体要求,这是正常的挖掘分析流程。不过目前我们只分析数据预处理有哪些类型,如何进行?

具体如下:

  1. min-max标准化
  2. Z-score标准化
  3. 小数定标规范化
  4. 正态变换
  5. 分类-标志变量
  6. 分类-数值变量
  7. 连续数值分段
  8. 删除无用变量
  9. 删除重复记录

min-max规范化

将数据映射到[0~1]之间,属于线性变换

min-max = (数值- 最小值)/(最大值-最小值)

如下图:假设最小值为1,最大值为6

 Z-score标准化

Z-score = (数值-平均值)/标准差,属于线性变换,变换后的数据均值为0,标准差为1

如下:

小数定标规范化

将数据规范化在[-1~1]之间,属于线性变换,类似于将原始数据的小数点前移,d指的是数据中的最大值的位数,比如最大值48920,这个最大值的位数d=5

X_{m}=\frac{X}{10^{d}}

如下:

正态变换

正太变换属于非线性变换,常用的正态变换有:

自然对数变换,也就是对数值求对数

平方根变换,也就是对数值求开方

平方根倒数变换,也就是在平方根的基础上在进行倒数变换

要注意,以上变换只是使得数据的分布更加接近正态分布,并不是说经变换后就完全符合正态分布

对数变换:

平方根变换

平方根倒数变换

 分类-标志变量

分类标志变量,即将数据映射为0或者1,只有这两个类别

如果实际数据类别为2类,那么0和1分布对应不同的类

如果实际数据类别大于等于3类,那么当符合某一条件的类时,映射为1,其他均为0

分类-数值变量

分类数值变量,同标志变量相比,数据类别的变换不在只要求0和1,根据实际类别去走

连续数值分段

 连续数值分段,即针对连续型数据,进行分段处理,常用的分段处理方式有:

等宽分段、等频分段、分类算法分段等

删除无用变量

无用变量,也就是对模型训练提供不了实质信息的变量,比如一组数据中某个字段为国家,全部是中国,这个字段在所有样本里面都相同,就可以删除,又如某个字段,其中90%的样本都为空,那么这个也可以删除掉

另外一些对模型起不到实质信息的字段,哪怕数据质量很高,也可以删除掉,避免对模型进行影响干扰。

删除重复记录

重复记录在模型训练过程中,可能会影响部分参数的权重,原本不同类型的样板数量较为均衡,但重复记录打破了这一平衡,让重复类型的样本更大程度的影响了模型的训练。

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值