数据挖掘, 概念与技术 Chapter 3. 数据预处理

如有任何疑惑,请读这本书。

如希望复习相应的知识概念,请ctrl+F( or cmd+F)查阅具体的关键词。


keyword:数据质量, data cleaning, data integration, data reduction, ETL, binning, outlier analysis, 实体识别问题, [图片上传失败...(image-f7793d-1544357627729)]

x^{2} 检验, correlation coefficient, covariance, dimensionality reduction, numerosity reduction, data compression, min-max normalization

1.数据质量

数据质量涉及很多因素,包括准确性、完整性、一致性、时效性、可信性和可解释性。

准确性:信息的正确性。(e.g.姓一栏填了全名)

完整性:信息有没有缺失(e.g.出生日期没有月份信息)

一致性:数据在不同的存储位置值是否相同(e.g.同一个人在A表性别为男,B表性别为女)

时效性timeliness:数据是否在时效期内(e.g.上个月的销售数据没能及时上传)

可信性believability: 反映(数据挖掘结果的)用户对数据的信赖程度(e.g.销售部门根本不在意我们做的数据分析结果报告)

可解释性interpretability: 数据是否容易理解(e.g.销售部门看不懂我们的报告结果)

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

2-1.数据清理(data cleaning): 通过填写缺失的值、光滑噪声数据、识别或删除离群点,并解决不一致性inconsistency来“清理”数据。

2-1-1 填写缺失的值:

a)忽略元组

当缺少类标号的时候精彩这样做,适用于这些元组中大部分缺少了多个属性值的情况。

但如果缺少属性值的元组占得比例比较大,这种做法是不可取的。

b)人工填写缺失值

传说中的以人工冒充人工智能,这样的做法不必说,费时费力,数据量稍大,就是不可行的。

c)使用一个全局变量填充缺失值

比如"unknown"或者"undefined", 这对于用户来讲是清晰地,但数据挖掘程序可能会认为"unknown"成为了一个很可观的cluster.

d)使用属性的中心度量

整个数据集的中心度量比如中位数,平均值等

e)某个cluster的中心度量,这会比前者好很多

f)某个class的中心度量,这和e)没有本质区别,我们也可以想到一些别的分类的依据,再对每个类取中心度量,这个思路也是分箱的思路

g)使用最可能的值来填充

通过bayes,decision tree等方法归纳并预测这个值,填入

2-2 光滑噪声数据:

2-2-1 分箱binning

把(从小到大排列的)数据分为长度相等的n个数据段,每个段就是一个箱子,对于分出来的箱子,我们的值都用中位数代替

e.g. 4, 8, 15 => 8, 8, 8

2-2-2 回归regression, 又称函数拟合

regression = find the line of best fit.

用一个函数拟合,至于这个函数是怎么来的,这涉及到machine learning,算是data和AI基础知识中最有趣也是最基础的一部分,之后一本书我们会具体讨论这个问题。

2-2-3离群点分析(outlier analysis)

通过clustering来圈出比方说95%的数据点,剩余的可视为噪声。

2-2-4数据清理整个过程

step-1 偏差检测(discrepancy dectection)

导致偏差的因素有很多,输入、数据退化(e.g.过时的地址)

进行:对meta-data元数据进根据领域知识进行数据可接受值的排查,通过统计手段排除一些噪声、离群点和反常值

step-2 编码和数据类型错误

有一定基础编程知识的程序员都知道,在任何语言中我们初始化变量variable时都显式的或隐式的开辟了内存空间,分配了一段内存。

(具体地说,以C和python3举例,C语言显式的分配内存。

e.g. int var;

这分配了一个int长度的内存空间,这个空间的值目前是undefined状态的,可能取值错误,但更常见的是该空间是曾经被其他进程使用过并留下痕迹的,输出一堆意义不明的数字

var = 10;

在开辟的内存空间上分配了集体的值。

引用数据类型或者说结构体在此不做讨论,实际上有一定编程基础的同学都应该了解这些知识,请参考算法导论。

e.g. var = 10

这实际上是执行了 int var = 10;的所有操作,开辟了内存并分配了具体值。

所以python中不分配值而定义变量是不可行的,python并没有涉及机制来存储没有开辟空间的变量名信息(NameError)

Python3中我们不必指定变量的类型,因为输入的值会被自动确认变量类型,但有时这也对一些习惯于手动分配内存的程序员带来了心理上的不快。

比方说也许我只需要一个short (int) var = 10;

这样可以节约一点内存开销,但在python3中我们由于是自动分配内存,就没办法这样精确地去调节short.

python仍然是强类型语言,作为高级语言的代表被讨论。

附链接:Python3 基本数据类型​www.runoob.com

图标

)

所以话说回来,我们的数据类型需要统一,过大的数据类型会占用更多资源,而数据类型long->int则可能造成精度丢失。

对于编码,比如date来说 12/05/2012和2012/05/12自然是不一致的,如果不考虑他们的不一致而粗暴的合并数据,则会造成意想不到的错误。

一些数据清理相关的商业工具:

数据清洗工具(data scrubbing tool)

数据审计工具(data auditing tool)

数据迁移工具(data migration tool)

ETL(Extraction/Transformation/Loading)工具

2-3 数据集成(data integration):将来自多个数据源的数据合并并用于分析。

数据挖掘经常需要数据集成:合并来自多个数据存储的数据

良好的数据集成有助于减少结果数据集的冗余redundancy和不一致inconsistency.

2-3-1 实体识别

来自多个信息源的现实世界的等价实体如何才能“匹配”?这涉及到实体识别问题。

每个属性的元数据包括名字、含义、数据类型、属性值的范围、空值处理规则等信息。

2-3-2 冗余和相关分析

冗余:一个属性如果可以由另一个或多个属性“导出”,那么这个属性可能是冗余的(但有的时候我们需要构造一个被导出的属性来支持更便捷的数据分析,所以冗余在数据挖掘中,与RDBMS一样,不一定是完全的坏事)

有些冗余可以被相关分析检测到。

对于标称属性(nomial attribute), 我们使用卡方检验。

对于数值属性(numeric attribute), 我们使用相关系数(correlation coefficient)和协方差(covariance)。

2-3-2-1 卡方检验

卡方计算公式(又称 Pearson [图片上传失败...(image-b2fb5b-1544357627729)]

x^{2} 统计量)

[图片上传失败...(image-3bd244-1544357627729)]

x^{2} = \sum_{i=1}{c}{\sum_{j=1}{r}{ \frac{(o_{ij}-e_{ij})^{2}}{e_{ij}}}}

其中,[图片上传失败...(image-389d23-1544357627729)]

o_{ij}是联合事件 [图片上传失败...(image-431bc7-1544357627728)]

(A_{i}, B_{i}) 的观测频度(即实际计数),而 [图片上传失败...(image-94896c-1544357627728)]

e_{ij} 是 [图片上传失败...(image-825288-1544357627728)]

(A_{i}, B_{i}) 的期望值。

[图片上传失败...(image-b84a72-1544357627728)]

e_{ij} =\frac{count(A = a_{i}) \times count(B = b_{j})}{n}

//TODO 拍照本书p95 例题 3.1

2-3-2-2 数值数据的相关系数

对于数值数据,我们可以通过计算属性A,B的相关系数(又称Pearson积矩系数, Pearson's product moment coefficient, named from Karl Pearson)

来计算相关度 [图片上传失败...(image-a7d6da-1544357627728)]

r_{A, B}

协方差 计算公式: [图片上传失败...(image-98990b-1544357627728)]

cov(A, B) = E((A-\bar{A})(B-\bar{B})) = \frac{\sum_{i=1}^{n}{(a_{i}-\bar{A})(b_{i}-\bar{B})}}{n}

相关系数: [图片上传失败...(image-637d5e-1544357627728)]

r_{A, B} = \frac{Cov(A, B)}{\sigma_{A}\sigma_{B}}

2-4 数据规约(data reduction):包括维规约和数值规约

2-4-1 维规约dimensionality reduction:减少属性个数,方法包括:小波变换、主成分分析

小波变换涉及数字与信号系统的知识,这里略过。

主成分分析超出本书知识范围,之后也许会单独列出一篇文章来详细讲述。

2-4-2 数值规约numerosity reduction:方法分为参数方法和非参数方法

参数方法: 使用模型估计数据, 非参数方法:直方图、聚类和数据立方体聚集

2-4-2-1 直方图、聚类和数据立方体聚集

等宽直方图实际上就是分箱,通过分段来得到区间,再通过区间内部的中心趋势度量来得到一个近似值

另一种直方图叫等频直方图,即每个区间内的数据数量近似相同,并且在此基础上尽可能使桶内数据方差不大。

聚类:簇内对象相似,簇外对象相异。用簇中心度量代替数据

抽样:允许小得多的随机样本来表示一个更大型的数据集

无放回简单随机抽样(SRSWOR)

有放回简单随机抽样(SRSWR)

簇抽样:即clustering

分层抽样:如果D被划分为互不相交的部分,称作“层”。

2-4-2-2 数据立方体聚集

聚集的概念在之前的章节已经详细的解释了,这实际上只是另一种没有技术含量的分类的概念。

2-4-3 数据压缩(data compression)

分为有损压缩和无损压缩,如果原始数据能够由压缩后的数据重构,是无损压缩,否则是有损压缩。

2-4-4 属性子集选择

属性的“好坏”通常由统计显著性检验来确定,也可以使用一些其他评估度量,如:决策树建立的依据:信息增益度量(Information Gain)

2-5 数据变换及数据离散化

数据变换(Data transformation):

Step-1: 光滑smoothing, 去掉数据中的噪声,技术包括:分箱、回归和聚类

Step-2: 属性构造, 详细描述见本文中

Step-3: 聚集: 对数据进行汇总

Step-4: 规范化:把数据按比例缩放,主要是为了权重的平衡

Step-5: 离散化: numeric data-> discrete data, 主要是区间分类

2-5-1 最小-最大规范化

Step-1: 得到极差值(max - min)和需要映射到的区间的长度的比例(ratio)

Step-2: 进行映射

数据变换还有分箱和z-score规范化,不是很重要,也是不断重复一些基础的统计学概念,之后我再行补充。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,869评论 6 13
  • 几句主题外:开通了专栏,这样我就在干脆把最近整理的乱七八糟的东西都写在这里。 打开方式:先看书或者别的资料,再有选...
    Wallace_QIAN阅读 889评论 0 1
  • 投射孩子变得越来越自信,健康,阳光。投射孩子在课堂上认真听讲,和老师同频共振,课后和同学愉快相处。投射孩子每晚都能...
    恬妈阅读 231评论 0 2
  • 上一次写东西的时候是开题报告, 上上一次是英语考试翻译, 上上上一次是英语作文, 这就是为什么我要开始写东西。 的...
    finethankuandu阅读 169评论 0 0