前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【数据】数据预处理

【数据】数据预处理

作者头像
陆勤_数据人网
发布2018-03-27 11:53:00
1.5K0
发布2018-03-27 11:53:00
举报
文章被收录于专栏:数据科学与人工智能

小编邀请您,先思考:

1 数据预处理包括哪些内容?

2 如何有效完成数据预处理?

数据的质量和包含的有用信息量是决定一个机器学习算法能够学多好的关键因素。因此,我们在训练模型前评估和预处理数据就显得至关重要了。

数据预处理没有统一的标准,只能说是根据不同类型的分析数据和业务需求,在对数据特性做了充分的理解之后,再选择相关的数据预处理技术,一般会用到多种预处理技术,而且对每种处理之后的效果做些分析对比,这里面经验的成分比较大。

一. 为什么要预处理数据

现实世界的数据总是或多或少存在各种各样的问题,比如:

1)不完整的:有些感兴趣的属性缺少属性值,或仅包含聚集数据

2)含噪声的:包含错误或者“孤立点”

3)不一致的:在编码或者命名上存在差异

没有高质量的数据,就没有高质量的挖掘结果。高质量的决策必须依赖高质量的数据,数据仓库需要对高质量的数据进行一致的集成。

二. 数据预处理的主要任务

1)数据清理

填写空缺的值,平滑噪声数据,识别、删除孤立点,解决不一致性

2)数据集成

集成多个数据库、数据立方体或文件

3)数据变换

规范化和聚集

4)数据归约

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

5)数据离散化

数据归约的一部分,通过概念分层和数据的离散化来规约数据,对数字型数据特别重要

三. 数据清洗

现实数据并不总是完整的,往往由于设备异常,与原有数据不一致而被删除,因误解而没有录入的数据,对数据的改变没有进行日志记载等原因,导致数据存在空缺值。因此我们需要对缺失值进行处理,一般可以有以下方法:

a.忽略元组,即消除带有确实值得特征和样本,当类标号缺少时通常这么做

b.人工填写缺失值:工作量太大,可行性太低

c.使用全局变量填充空缺值,比如NaN、unknown等等

d.使用属性的平均值填充空缺值

e.使用与给定元组属于同一类的所有样本的平均值

f.使用最可能的值填充,比如像贝叶斯,决策树等这样基于推断的方法

四. 数据集成和变换

我们需要将多个数据源中的数据整合到一个一致的存储中,因为对现实世界中的同一实体,来自不同数据源的属性值,因不同的度量等原因可能是不同的。

有两种方法能使不同的特征有相同的取值范围:归一化和标准化

1)归一化(normalization)

归一化指的是将数据按比例缩放到[0,1],是最小-最大缩放的特例。当然我们也可以按照一定比例缩放使数据落入特定区间。

为了得到归一化结果,我们对每一个特征应用最小-最大缩放,如下:

2)标准化(standardization)

相对来说,标准化对于大部分机器学习算法更实用。原因是大部分线性模型比如Logistic回归和线性SVM在初始化权重参数时,要么选择0要么选择一个接近0的随机数。使用标准化,我们能将特征值缩放到以0为中心,标准差为1,即服从正态分布,这样更容易学习权重参数。

标准化公式如下:

五. 数据归约和离散化

数据仓库中往往存有海量数据,在其上进行复杂的数据分析与挖掘需要很长的时间。数据归约可以用来得到数据集的归约表示,它小得多,但可以产生相同的(或几乎相同的)分析结果。而且用于数据归约的时间不应当超过或“抵消”在归约后的数据上挖掘节省的时间。

数据归约策略

1)数据立方体聚集

最底层的方体对应于基本方体,基本方体对应于感兴趣的实体。并且在数据立方体中存在着不同级别的汇总,每个较高层次的抽象将进一步减少结果数据。数据立方体提供了对预计算的汇总数据的快速访问,在可能的情况下,对于汇总数据的查询应当使用数据立方体。

2)维归约

删除不相干的属性或维减少数据量。找出最小属性集,使得数据类的概率分布尽可能的接近使用所有属性的原分布,减少出现在发现模式上的属性的数目,使得模式更易于理解。并且可以使用启发式方法来选择或删除相关的维。

3)数据压缩

其中包含有损压缩和无损压缩。主要有字符串压缩和音视频压缩。

4)数值归约

通过选择替代的、较小的数据表示形式来减少数据量。包含有参方法和无参方法。

有参方法代表:线性回归,多元回归,对数线性模型等

无参方法代表:直方图,聚类,选样等

5)离散化和概念分层

离散化:通过将属性域划分为区间,减少给定连续属性值的个数。区间的标号可以代替实际的数据值。

概念分层:通过使用高层的概念(比如:少年、青年、中年、老年)来替代底层的属性值(比如:实际的年龄数据值)来规约数据。

数据数值的离散化和概念分层生成一般存在以下方法:

a.分箱(binning)

分箱技术递归地用于结果划分,可以产生概念分层。

b.直方图分析(histogram)

直方图分析方法递归地应用于每一部分,可以自动产生多级概念分层。

c.聚类分析

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

d.基于熵的离散化

e.通过自然划分分段

六. 小结

本文我们简单介绍了数据挖掘中数据预处理的相关内容,只能说是浅尝辄止吧,期待更深入的研究。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据科学与人工智能 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据集成
数据集成(DataInLong)源于腾讯开源并孵化成功的 ASF 项目 Apache InLong(应龙),依托 InLong 百万亿级别的数据接入和处理能力支持数据采集、汇聚、存储、分拣数据处理全流程,在跨云跨网环境下提供可靠、安全、敏捷的全场景异构数据源集成能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档