首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据挖掘系列(三)——数据预处理

数学挖掘系列(三):数据预处理

数据预处理是把采集和经过抽样后的样本数据进行清洗和一些标准化和降维处理,是把杂乱的数据转为可以进行建模的数据,因此数据预处理是数据建模非常重要和必要的一个步骤,也是数据挖掘中最耗时的步骤,它直接影响模型的效果。一般常规的数据预处理主要包含四个步骤:

数据清洗 (重点)

数据集成

数据变换

数据规约 (重点)

01

数据清洗

数据清洗主要做的工作: 删除无关值,重复数据,处理缺失值、异常值等。

1

缺失值处理方式:

删除记录: 这种适合样本量较大,删除记录不会对样本产生过大影响;

不处理:这种适合由于数据本身特性而造成的缺失;

数据插补:根据缺失值的特性,确定不同的插补方法。

常用的插补方法有以下几种:

Python上的实现: 拉格朗日插值法

数据插补除了应用统计学的方法外,还可以利用一些机器学习的方法来预

测缺失值,例如常用的随机森林,knn等。

对于根据经验无法确定那个补缺失值的方法更好时,可以用业务逻辑和建模后的效果来判断。

2

异常值处理

异常值不一定是没有意义的,在一些异常检测和反常行为的数据挖掘目标中,异常值往往是蕴含了一些重要信息,也是数据挖掘和分析的重要对象。

对于异常值,首先要分析异常值在目标任务中的意义,异常值出现的一些可能原因,再判断异常值是否该舍弃还是做其他方式的处理。

常见的异常值处理方法:

02

数据集成

这个主要是把不同数据源的数据合并存放在一个指定的数据库过程中,数据集成主要是为了保证数据的口径统计:同一个属性的名称相同,单位的统一,去除数据的冗余。

03

数据变换

1

简单函数变换

对于有些数据指标的值比较大,例如GDP这种数据量都在多少亿级别,与其他数据级别 可能在0-1之间的属性在进行建模时,会由于数据量级偏差太大,对算法的效果会产生影响,因此一般需要怼一些特殊类别的数据做一些简单变换,例如常见的取对数/开平方等操作。

2

规范化

规范化是为了消除指标之间的量纲和取值范围差异的影响,一般规范化的操作主要有几下几种:

最小—最大规范化 x=(x- min)/(max-min)

零—均值规范化(标准差) x=(x-mean(x)) / δ

小数定标规范化(比较少用)

Python的数据规范化代码:

3

连续变量离散化

对于某些特殊的数据挖掘算法,要求输入的数据是分类离散的数据形式,而现实中,我们获得的很多数据样本是连续值,比如一个人的收入,年龄,工作年限等等,这时候需要将这些连续值离散化,进行划分。

等宽法 :每个区间宽度相等,数据个数不一定相等。缺点: 对离群点比较敏感,可能造成区间数据个数分化严重。

等频法 :每个区间数据个数相等,区间宽度不一定相等。缺点:可能会对相同数据划分到不同区间。

聚类分析法:指定簇数,利用聚类算法划分。

Python 离散化操作

04

数据规约

在前期根据挖掘目标我们会尽量采集各种对目标结果有关的数据,采集的数据特征个数可能达几百个,但是最后应用到模型的特征并不需要这么多维度的数据,一是考虑模型运算的复杂度问题,二是有些变量指标之间反映的信息存在较大的重复性,也就是变量之间存在多重共线性。三是某些特征指标对目标结果的预测的贡献度和价值很低,几乎可以忽略。因此需要在建模之前对数据进行数据规约。

数据规约就是通过直接删除不相关属性或者合并产生新属性代替原来的几个属性,从而提高数据挖掘的效率、降低计算成本。属性规约的常用方法:

Python 主成分分析:

最后给出以上预处理中会用到的Python的主要函数:

具体每个函数怎么应用,里面的参数怎么设置,可以百度官网文档给的示例和解释。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180206G0KVWN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券