大数据丛书阿里技术丛书

重构大数据统计(阿里巴巴集团技术丛书,大数据丛书。大型互联网公司大数据分析实践经验!大数据分析人员必修必学的内功。基于本书内容开发的数据分析工具已在阿里巴巴集团内部使用,取得显著效果。

杨旭 著  

ISBN 978-7-121-22500-0

2014年8月出版

定价:79.00元

404

16

编辑推荐

大型互联网公司一线大数据分析实践!

《重构大数据统计》提出了一套适合于分布式计算的统计计算方法,梳理出一套对大数据分析有实用价值的统计理论,并形成参考代码,对于从事大数据分析的工程师而言,这些内容有相当的参考价值。

《重构大数据统计》是作者在一线工作中的实践总结。在研发的过程中,作者遇到了资源优化(成本)以及计算时间优化(性能)的问题,通过反复的实践和论证,总结出一套行之有效的理论和方法。在此方法指导下开发的数据分析工具,已经被阿里巴巴集团内部所使用,并取得了显著的效果。

开卷有益,《重构大数据统计》给您带来实用的解决思路,在此启发下,相信您也能摸索出适合自己实际情况的大数据分析之道,大大地提升数据分析效率。

阿里巴巴集团技术丛书重磅问世

阿里巴巴集团技术丛书是抱持着为工程师服务的理念诞生的。

阿里的快速发展,使我们有机会见证技术变革的强大力量。在这过程中,我们经历了技术的变迁、兴衰、成败,既有收获也有教训。如今,阿里已成为一家令人瞩目的互联网公司,站在这样的时点上,回顾过去,放眼四周,我们深刻地觉得有必要将沉淀下来的一线经验与智慧,结集出版,理由有三。

1.回报。我们获得的种种经验与教训,只有在阿里这样快速成长、体量巨大的公司中才有机会亲历。这样的技术环境并不是每个工程师都有机缘遇到的。这些经历帮助了我们个人能力的提升,也帮助阿里成为一家技术实力过硬的公司。我们愿意把这些内容分享出来,帮助即将或已经面临类似问题的朋友们,如果他们可以从阅读中获得一些启发而少走弯路的话,将是我们最大的欣慰。

2.交流。在这套丛书里,我们同样会抛出我们的困惑、问题,借助丛书的平台,扩大工程师沟通的圈子,以书会友,共同探索、学习、提高。

3.温故知新。以结集的形式,将以往的经验与知识固化下来,既可便于以后查阅,也可以帮助我们系统地梳理思路,更为全面地审视、洞察、并理解过去发生的种种,为未来的变化做好更充分、扎实的准备。

基于以上的考虑,阿里巴巴集团技术丛书将立足于实践,着眼于问题,从工程师的视角解读技术的内涵。

让思考成为我们生活的乐趣,让阅读成为我们进步的阶梯!

内容提要

基于《重构大数据统计》内容开发的数据分析工具已经在阿里巴巴集团内部的多个部门使用,并取得显著效果。

大数据的统计计算是进行数据探索和分析挖掘的基础,在实际应用中会遇到两个问题:一个是需要使用多少资源;另一个是计算时间,它关系到数据探索分析的效率和效果。

人们都希望花更少的钱,并且希望计算时间更短,但对于某个确定的计算过程,它们是成反比的。《重构大数据统计》就是从统计计算的算法入手,重构其计算过程,从而同时降低资源使用量和计算时间。

《重构大数据统计》提出了一套完整的关于大数据统计的计算理论,包括常用的各种统计量和统计方法。

《重构大数据统计》提供大量的示例程序代码帮助读者进一步了解算法细节,便于将书中的方法运用于实际计算。

《重构大数据统计》适合对大数据分析感兴趣的读者阅读:前面章节比较容易理解,包含了常用统计量的计算;后面的各章节需要读者具备一些基础知识。建议读者根据自己的兴趣和工作需要,选择相应的内容参考。

目录

1 基本概念............................................................. 1

1.1 数据类型.........................................................................................1

1.2 总体和样本........................................................................ 2

1.3 参数和统计量...................................................................................2

1.4 分布式计算...................................................................... 3

2 单变量基本统计量.......................................................... 5

2.1 数量统计量........................................................................... 5

2.1.1 样本方差为何除以n-1.........................................................................................7

2.1.2 数据分布与标准差的关系.................................................................................10

2.1.3 新的计算公式.....................................................................................................11

2.1.4 代码实现.............................................................................................................16

2.2 频数统计量 .....................................................................18

2.3 次序统计量......................................................................... 23

2.3.1 通过排序方法计算次序统计量......................................................................... 25

2.3.2 不需排序就可计算的次序统计量..................................................................... 29

2.3.3 基于频数信息计算次序统计量......................................................................... 31

2.3.4 中位数、众数和均值的关系.............................................................................34

3 单变量数据的分布................................................ 36

3.1 直方图........................................................................... 36

3.1.1 直方图的计算.....................................................................................................39

3.1.2 算法实现.............................................................................................................42

3.1.3 已知数据频数的情况下求直方图..................................................................... 49

3.1.4 日期类型直方图.................................................................................................49

3.2 经验分布...............................................................................57

3.3 近似分位数和近似百分位数.................................................................. 61

3.4 PPQQ 概率图........................................................................ 65

3.5 单变量的基本统计信息............................................................ 69

4 多变量的数据特征............................................................ 77

4.1 协方差................................................................................................77

4.2 相关系数..................................................................................79

4.3 协方差和相关系数的计算实现 ....................................................................80

4.4 数据表的基本统计结果.................................................................... 84

5 数据探索............................................................... 88

5.1 扩展直方图 ....................................................................................88

5.1.1 计算方法.............................................................................................................90

5.1.2 代码实现.............................................................................................................91

5.2 交叉表......................................................................................110

6 极限定理..........................................................................................116

6.1 大数定理......................................................................................116

6.2 中心极限定理..............................................................................117

7 常用的分布函数介绍........................................................ 123

7.1 基本定义...............................................................................123

7.2 标准正态分布(Z 分布或U 分布)............................................................................124

7.3  卡方分布(分布) ......................................................................129

7.4 学生T 分布..................................................................................133

7.5 F 分布.............................................................................. 139

8 常用分布函数计算.................................................. 145

8.1 函数定义................................................................................145

8.2 函数性质及相互间的关系....................................................................... 147

8.3 分布函数关系图.............................................................................164

8.4 分布函数的计算..............................................................................166

8.4.1  计算.................................... 166

8.4.2  计算 .............................. 170

8.4.3  计算 ..............................................173

8.4.4  计算 .............................................................................................176

8.4.5 其他函数的计算...............................................................................................178

8.5 生成常用分布的随机数.......................................................................... 180

9 参数估计........................................................................... 187

9.1 点估计与区间估计.......................................................................... 187

9.2 单个总体的参数估计..................................................................................190

9.2.1 不同情况的参数估计表达式........................................................................... 190

9.2.2 单个总体参数估计的实现...............................................................................191

9.3 两个总体的参数估计.................................................................. 196

9.3.1 不同情况的参数估计表达式........................................................................... 196

9.3.2 两个总体参数估计的实现...............................................................................199

10 假设检验..................................................................... 207

10.1 基本概念............................................................................207

10.2 参数检验...................................................................................209

10.3 单个总体参数的检验 .....................................................................212

10.3.1 各种情况下的检验方法.................................................................................212

10.3.2 单个总体参数检验方法的实现..................................................................... 214

10.3.3 不同检验方法的选择.....................................................................................223

10.4 两个总体参数的检验......................................................................... 227

10.4.1 各种情况下的检验方法.................................................................................227

10.4.2 两个总体参数检验方法的实现..................................................................... 231

10.4.3 不同检验方法的选择.....................................................................................237

11 非参数检验.............................................................................244

11.1 Pearson拟合优度检验............................................................ 245

11.2 两个变量的列联表检验 ..........................................................248

11.3 K-S 检验.........................................................................................250

11.3.1 单样本K-S 检验.............................................................................................251

11.3.2 双样本K-S 检验.............................................................................................256

11.4 符号检验...............................................................................258

11.5 秩统计量和秩检验方法 ....................................................................260

11.5.1 Wilcoxon 秩和检验........................................................................................260

11.5.2 Wilcoxon 符号秩和检验................................................................................266

11.5.3 Kruskal-Wallis 检验........................................................................................268

11.5.4 Friedman 检验.................................................................................................273

12 方差分析.................................................................... 277

12.1 单因素方差分析...............................................................................278

12.1.1 计算流程.........................................................................................................278

12.1.2 代码实现.........................................................................................................280

12.1.3 方差分析与T 检验的关系 .............................................................................283

12.1.4 方差分析中的多重比较方法......................................................................... 285

12.2 双因素方差分析...................................................................... 289

12.2.1 无交互作用的双因素方差分析..................................................................... 289

12.2.2 有交互作用的双因素方差分析..................................................................... 295

13 多元线性回归.................................................................................302

13.1 数学模型.................................................................................302

13.2 显著性检验................................................................................308

13.3 计算步骤............................................................... 309

13.4 代码实现.......................................................................... 313

13.5 多重共线性........................................................................... 320

13.5.1 度量指标............................................................................320

13.5.2 代码实现.........................................................................................................323

13.5.3 应用示例.........................................................................................................328

13.6 逐步回归........................................................................................330

14 主成分分析........................................................................................340

14.1 计算步骤............................................................................................342

14.2 代码实现......................................................................................345

14.3 应用举例......................................................................................350

15 判别分析...................................................................... 359

15.1 距离判别....................................................................... 359

15.1.1 Mahalanobis 距离...........................................................................................360

15.1.2 模型训练和预测.............................................................................................361

15.2 Fisher 判别....................................................................................364

15.3 Bayes 判别................................................................................369

15.3.1 朴素Bayes 判别.............................................................................................369

15.3.2 模型训练和预测.............................................................................................370

15.4 判别算法的综合模型................................................................ 377

15.5 应用举例...................................................................................378

16 模型评估曲线....................................................................... 383

16.1 相关概念......................................................................... 383

16.2 定义............................................................................................384

16.2.1 ROC 曲线........................................................................................................384

16.2.2 上升图和反馈率—精确率线......................................................................... 386

16.3 计算实现.....................................................................................386

参考文献....................................................................................391

媒体评论

在大数据时代,数理统计是研究和挖掘数据价值的不可或缺的工具。尽管数理统计学科中有大量的理论研究成果,但如何将这些经典成果应用到大数据挖掘问题中,则还是近几年的事情。本书立足于将数理统计基础知识应用到大数据计算上,通过理论介绍和算法程序相结合的描述方法,把复杂的计算问题转变为相对简单、高效的计算过程。

本书提出了一套适合于分布式计算的统计计算方法,通过对一些基础统计量的计算,可获得有关数据集更全面的统计信息,进而可以进行高级的统计分析,例如,区间估计、线性回归、主成分分析等。可以这样说,本书从统计计算的角度,梳理出一套对大数据分析有实用价值的统计理论,并形成参考代码。

对于非数学背景,甚至非数理统计专业背景的读者来说,本书中所涉及的理论基础可能会比较陌生,特别是后半部分章节中提到的一些定理和推演过程。以我自己阅读为例,本书前半部分阅读起来比较愉悦和轻松,后半部分有些章节着实“不明觉厉”了。对于大数据分析的工程师或者分析师而言,本书的内容极其有参考价值,可以让你在先验统计知识的基础上,获得更多的统计信息,甚至捕捉到数据集内在的规律。

我也相信,大多数读者并不具备数理统计专业的基础,但这不会成为阅读本书和使用高级统计量的障碍。相反,阅读本书会开阔大数据分析的思路,学习统计分析的理论基础,并快速找到大数据统计分析的正确方法。建议每一位正在从事大数据分析的工程师都读一读这本书。

本书作者杨旭曾经获得了南开大学数理统计专业的博士学位,并先后在微软亚洲研究院和阿里巴巴从事高性能计算和大数据计算方面的工作。两年前,他曾经向我提到,他计划将工作中积累的算法经验写成一本书,到了2014 1 月,他告诉我书稿已经完成,询问我能否作序或写推荐。我粗略看了一下目录,认为对于大数据计算非常有价值,也正好有兴趣学习这方面的知识,所以答应春节假期阅读完书稿后再做决定。

是以作序推荐。

潘爱民

阿里云OS 首席架构师

相信大多数从事数值计算的技术人员都读过一系列叫作Numerical Recipe in C/Fortran/Java的书。眼前这本《重构大数据统计》或许可以叫作Numerical Statistics Recipes in Java,和那个系列一样,对于重新快速学习和使用数值统计算法来实现数据分析应用的读者来说,这本书是一本不错的入门手册。

数理统计和多变量统计分析的数值算法存在已久,并不是新的Rocket Science。无论冠以数据分析还是大数据分析之名,本书所涵盖的统计量和统计方法的知识都是数据分析人员必须具备的基本功。大数据分析是一门应用科学,根本原因在于互联网和计算技术,硬件技术的发展使得海量数据的产生和实时持续处理成为可能,这样由海量数据驱动的数据挖掘、机器学习等基于传统的统计数据分析方法真正成为基于理论建模、实验和数值模拟之外新的范式。认识到这一点就会对大数据持平常心,学习的核心就在于如何掌握数理统计和多变量分析在大数据应用框架下的实现和性能优化。本书简明扼要地介绍了常用的数理统计算法,重点介绍了数值算法的实现。

囿于篇幅,本书未能介绍每一种统计量和统计方法在实际的大数据分析场景中的可能应用,我们期待作者后续能完善这方面的研究,将本书的下一版内容提升到应用指南的层面。

何万青博士

英特尔技术计算集团技术计算架构师

前言

大数据的统计计算是进行数据探索和分析挖掘的基础。在实际应用中,随着数据规模的快速增长,数据会分布式存储在多台计算机上,即使最简单的求和操作都需要多台计算机协同完成,并且需要分钟级别的计算时间,这样我们将面对如下两个问题:

需要使用多少资源,即所要付出的成本。

计算需要多少时间,它关系到数据探索分析的效率和效果。

人们都希望花更少的钱,并且希望计算时间更短,但对于某个确定的计算过程,它们是成反比的。这就是我在大数据统计实践中经常遇到的情况,当研究了一个又一个计算性能问题之后,我惊奇地发现,这些不同的算法间是有共性的,这就吸引我去深入研究,最终形成了一套完整的理论,包括常用的各种统计量和统计方法。基于本书内容开发的数据分析工具已经在阿里巴巴集团内部的多个部门使用,并取得了显著效果。

首先举一个例子,使大家有一个直观的印象:对于10TB 的数据,大约有1.25 万亿个数据,以求和计算为例,使用很多人熟悉的分布式SQL 进行计算:

SELECT SUM(COL1) AS COL1_SUM, COUNT(COL2) AS COL2_CNT, … FROMDATA_TABLE;

共运行了4 44.062 秒,在该SQL 语句中,每列只算了一个统计量。

然后使用本书的计算方法,计算更多的统计量,包括:总个数、总和、均值、方差、标准差、标准误、变异系数、立方和、四次方和、二阶原点矩、三阶原点矩、四阶原点矩、二阶中心矩、三阶中心矩、四阶中心矩、偏度、峰度;最大值、最小值、极差、最大的100 个值、最小的100 个值;数据分布直方图、经验分布函数、近似百分位值。如果不同数值的个数小于10000个,会将其频数信息计算出来,并有精确百分位值、中值、众数;协方差矩阵、相关系数矩阵。

得到所有的这些统计量使用的计算节点数目与用SQL 语句获得的基本相同,花费的计算时间为:4 53.673 秒。计算这么多内容才多花约10 秒,说明本书介绍的算法够高效吧!但这还只是一个开头。

接下来,做一个更有挑战的实验,除了上面这些统计量,我们再加入一些高级的统计计算,区间估计、参数检验、非参数检验、线性回归、共线性分析、方差分析、主成分分析,完成这些需要多久呢?答案是4 53.766 秒。多么神奇的事情!对这些大数据进行高级统计计算只多用了不到0.1 秒。这种计算效率的提高够显著了吧,我们无须再为资源和时间发愁了。

本书通过文字描述、数学表达式和程序代码,将整个统计计算过程清晰地展现在读者眼前。全书揭示了各种统计概念和方法,以及它们内在的关联,并根据其特点,对各自的计算公式进行恒等变换,找到更适合大数据的计算方式。书中提供的示例程序代码可以帮助读者进一步了解算法细节,便于将书中的方法运用于实际计算。

本书适合对大数据分析感兴趣的读者阅读,本书前面的章节比较容易理解,包含了常用统计量的计算;后面的各章节需要读者具备一些基础知识,建议读者根据自己的兴趣和工作需要,选择相应的内容进行参考。

在本书编写过程中,感谢初敏、陈一宁、张东晖的支持和帮助,感谢蔡宁、高志涵在算法方面的讨论和交流,感谢邓钟强、蔡宁、高志涵、蒋耘、罗毅、谭望达、代斌、周俊、王少萌、姜晓燕、王乐珩、曹传宇等同事,一同将此理论应用于实际。

因作者水平有限,书中难免有不妥或疏漏之处,敬请广大专家和读者批评、指正! 我的电子邮件地址为:yangxu@alibaba-inc.com

杨旭

2014 7

重构大数据统计_互联网