数据预处理—剔除异常值,平滑处理,标准化(归一化)

数据预处理的主要任务如下:

(1)数据清理:填写空缺值,平滑噪声数据,识别,删除孤立点,解决不一致性

(2)数据集成:集成多个数据库,数据立方体,文件

(3)数据变换:规范化(消除冗余属性)和聚集(数据汇总),将数据从一个较大的子空间投影到一个较小的子空间

(4)数据归约:得到数据集的压缩表示,量小,但可以得到相近或相同的结果

(5)数据离散化:数据规约的一部分,通过概念分层和数据的离散化来规约数据,对数字型数据比较重要。

1.数据清洗

(1)处理空缺值:

A, 忽略元组

B.人工填写空缺值

C.使用一个全局变量填充空缺值

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

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

F.使用最可能的值填充空缺值,使用像Bayesian公式或判定树这样的基于推理的方法

(2)处理噪声数据

噪声:一个测量变量中的随机错误或偏差

A.分箱(binning)(等深或等宽分箱)

首先排序数据,并将他们分到等深的箱中

然后可以按箱的平均值平滑,按箱中值平滑,按箱的边界值平滑

B.聚类:检测并且去除孤立点

C.计算机和人工检查结合:计算机检测可疑数据,然后对他们进行人工判断

D.回归:通过让数据适应回归函数来平滑数据,对连续的数字型数据较好

2.数据集成

数据集成:将多个数据源中的数据整合到一个一致的存储中

模式集成:整合不同数据源中的元数据,实体识别问题:匹配来自不同数据源的现实世界中相同的实体。(人工干预或利用字段的元信息,比较字段的描述性元信息,看他们是否相同)。检测并解决数据值的冲突:对现实世界中的同一实体,来自不同数据源的属性值可能是不同的(因为不同的数据表示或不同的度量)

处理数据集成中的冗余数据:

集成多个数据库时出现冗余数据的主要原因:同一属性在不同的数据库中会有不同的字段名;一个属性可以由另外一个表导出

有些冗余可以被相关分析检测到:检测各个属性之间的相关性

事先根据其元数据或相关性分析对数据进行预处理,就能够减少或避免结果数据中的冗余与不一致性,提高数据挖掘的质量。

3.数据变换

A.平滑:去除数据中的噪声

B.聚集:数据汇总,数据立方体的构建,数据立方体的计算/物化(一个数据立方体在方体的最底层叫基本方体,基本方体就是已知存在的数据,对现有的数据按照不同维度进行汇总就可以得到不同层次的方体,所有的方体联合起来叫做一个方体的格,也叫数据立方体。数据立方体中所涉及到的计算就是汇总)

C.数据概化:沿概念分层向上汇总,数据立方体的不同的维之间可能存在着一个概念分层的关系

D.规范化:将数据按比例缩放,使这些数据落入到一个较小的特定的区间之内。方法有:

   a.最小----最大规范化

   b.Z-score规范化

   c.小数定标规范化

E.属性的构造:通过现有属性构造新的属性,并添加到属性集中

4.数据归约

(1)数据归约可以用来得到数据集的归约表示,它小得多,但可以产生相同(或几乎相同的)分析结果

(2)数据归约策略

   A.数据立方体聚集:

   数据立方体是根据不同的维度对数据进行汇总,立方体的越顶层,其汇总程度就越高,数据量就越少。

对数据的表示就越概化。最底层的方体对应于基本方体,基本方体对应于感兴趣的实体。

在数据立方体中存在着不同级别的汇总,数据立方体可以看做方体的格,每一个较高层次的抽象将进一步减少结果数据集。

数据立方体提供了对预计算的汇总数据的快速访问,原则是使用与给定任务相关的最小方体,并且在可能的情况下,对于汇总数据的查询应当使用数据立方体。

   B.维归约:用来检测或删除不相关的或基本不相关的属性或冗余属性或维,来减少数据量。

属性子集的选择:找出最小属性集,使得数据类的概念分布尽可能的接近使用所有属性的原分布,把不相关的属性全部删除。

可以减少出现在发现模式上的属性的数目,使得模式便于理解。

主要方法有:启发式的(探索式的try and error)方法,该方法包括逐步向前选择(从空属性集开始,每次选择都选择当前属性集中最符合的目标,

最好的属性,加到当前的属性集中,这样逐步的向前选择,把有用的属性一个一个的添加进来),

逐步向后删除(从属性全集开始,每次删除还在当前属性集中的最不适合的那个属性,最坏的属性,这样一个一个的删除,最后留下来的就是相关的属性),

向前选择和向后删除相结合(每次选择一个最好的属性,并且删除一个最坏的属性),判定归纳树

   C.数据压缩:使用一些编码机制来压缩数据集。无损压缩(可以根据压缩之后的数据完整的构造出压缩之前的数据wrar. zip等,如字符串压缩)

和有损压缩(无法通过压缩之后的数据来完整的构造出压缩之前的数据,如音频/视频压缩,有时可以在不解压缩整体数据的情况下,重构某个片段,主要应用于流媒体传输)。

两种有损数据压缩的方法:小波变换和主要成分分析

   D.数值归约:使用较小的,替代的数据来估计,替换,表示原数据(用参数模型):通过选择替代的,较小的数据表示形式来减少数据量。

方法主要有:有参方法(使用一个参数模型来估计数据,最后只要存储参数即可,有线性回归方法,多元回归,对数线性模型(近似离散的多维数据概率分布))和

无参方法(直方图(将某属性的数据划分为不相交的子集或桶,桶中放置该值的出现频率,其中桶和属性值的划分规则有:等深,等宽,V-最优,MaxDiff),

聚类(将数据集划分为聚类,然后通过聚类来表示数据集,如果数据可以组成各种不同的聚类,则该技术非常有效,反之如果数据界线模糊,则该方法无效。

数据可以分层聚类,并被存储在多层索引树中),选样(允许用数据的较小随机样本(子集)表示大的数据集。对数据集D的样本选择方法有:简单随机选择n个样本,不放回(由D的N个元组中抽取n个样本),

简单随机选择n个样本,回放(由D的N个元组中抽取n个样本,元组被抽取后将被回放,同一元组可能再次被抽取到),聚类选样(聚类分析和简单随机选样的结合,

D中元组被分入到M个互不相交的聚类中,可以在其中的m个聚类上进行简单随机选样,m<M),分层选样(D被划分为互不相交的层,则可通过对每一层的简单随机选样得到D的分层选样)

5.离散化和概念分层的产生

离散化:将连续属性的范围划分为区间,以减少所必需处理的数据的量。

主要应用于以下三类数据:名称型(无序集合中的值),序数(有序集合中的值),连续值(实数)。

使用连续属性的范围的划分,使用某一范围的值来代替某一段的值。

离散化可以有效的规约数据(基于判定树的分类挖掘)。离散化是通过将属性域划分为区间,减少给定连续属性值的个数,区间的标号可以代替实际的数据值。

概念分层是通过使用高层的概念来替代底层的属性值。

A.数值型数据如何离散化:

(1)分箱 binning:分箱技术递归的用于结果划分,可以产生概念分层。

(2)直方图分析 histogram:直方图分析方法递归的应用于每一部分,可以自动产生多级概念分层。

(3)聚类分析:将数据划分成簇,每个簇形成同一概念层上的一个节点,每个簇可再分成多个子簇,形成子节点。

(4)基于熵的离散化(基于统计学的)

(5)通过自然划分分段:将数值区域划分为相对一致的,易于阅读的,看上去更直观或自然的区间。

自然划分的3-4-5规则:如果一个区间最高有效位上包含3,6,7或9个不同的值就将该区间划分为3个等宽子区间;

如果一个区间最高有效位上包含2,4或8个不同的值,就将该区间划分为4个等宽的子区间;

如果一个区间最高有效位上包含1,5或10个不同的值,就将该区间划分为5个等宽的子区间;

再将该规则递归的应用于每个子区间。(对于数据集中出现的最大值和最小值的极端分布,为避免上述方法出现的结果扭曲,可以在顶层分段时,选用一个大部分的概率空间5%--95%)

B.分类数据的离散化:

(1)分类数据指无序的离散数据,它有有限个值(可能是很多个)

(2)分类数据的概念分层生成方法:(属性的序代表的是属性之间的一个包含关系,说明其在概念分层中的层次的高低)

由用户或专家在模式级显式的说明属性的部分序。在定义数据库时就注明属性之间的包含关系,在进行数据汇总时,直接找到该包含关系,

利用此包含关系进行数据向上汇总。

通过显示数据分组说明分层结构的一部分。

说明属性集,但不说明它们的偏序,然后系统根据算法自动产生属性的序,构造有意义的概念分层。

如何根据实际的数据来自动的生成一个偏序?根据在给定的属性集中每个属性所包含的不同值的个数,可以自动生成概念分层,不同值个数最多的属性将被放在概念分层的最底层。

对只说明部分属性集的情况,则可根据数据库模式中的数据语义定义对属性的捆绑信息,来恢复相关属性。在定义数据库的同时定义一个捆绑信息,将存在偏序关系的几个属性捆绑在一起。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

TensorFlow官方力推、GitHub爆款项目:用Attention模型自动生成图像字幕

【新智元导读】近期,TensorFlow官方推文推荐了一款十分有趣的项目——用Attention模型生成图像字幕。而该项目在GitHub社区也收获了近十万“点赞...

1942
来自专栏编程软文

前端慌不慌?用深度学习自动生成HTML代码

5466
来自专栏desperate633

小白也能看懂的BP反向传播算法之Towards-Backpropagation

想要理解backpropagation反向传播算法,就必须先理解微分!本文会以一个简单的神经元的例子来讲解backpropagation反向传播算法中的微分的概...

861
来自专栏腾讯Bugly的专栏

手机端运行卷积神经网络实现文档检测功能(二) -- 从 VGG 到 MobileNetV2 知识梳理

8974
来自专栏ATYUN订阅号

机器学习教程:使用摄像头在浏览器上玩真人快打

在尝试改进Guess.js的预测模型时,我开始研究深度学习。我主要关注RNN,特别是LSTM,因为它们在Guess.js领域具有不合理的有效性(unreason...

1524
来自专栏漫漫深度学习路

tensorflow学习笔记(四十五):sess.run(tf.global_variables_initializer()) 做了什么?

当我们训练自己的神经网络的时候,无一例外的就是都会加上一句 sess.run(tf.global_variables_initializer()) ,这行代码的...

2596
来自专栏Soul Joy Hub

自动微分(Automatic Differentiation)简介

http://blog.csdn.net/aws3217150/article/details/70214422 现代深度学习系统中(比如MXNet, Tens...

5613
来自专栏智能算法

Learning to Rank 小结

一、学习排序(Learning to Rank) LTR(Learning torank)学习排序是一种监督学习(SupervisedLearnin...

4515
来自专栏机器之心

前端慌不慌?用深度学习自动生成HTML代码

60711
来自专栏小鹏的专栏

trick—Batch Normalization

深度学习中 Batch Normalization为什么效果好? 这里分五部分简单解释一下Batch Normalization (BN)。 1. What ...

3218

扫码关注云+社区

领取腾讯云代金券