重磅推荐
【产品特色】

【编辑推荐】
亚马逊资深数据科学家李明博士、统计之都创始人谢益辉博士抢先品读
当前关于大数据、人工智能的炒作着实令人眼花缭乱,如大数据平台(如Hadoop、Spark),以及一些黑箱模型,如神经网络,深度学习(实际上就是多层神经网络)。各路媒体和“砖家”深谙吃瓜群众不明觉厉的心态,所以就像个“妓院头牌“似的越发摆谱。作者并没有打算写一本数据科学的圣经,告诉你所有关于数据科学的一切;只想尽可能地给大家还原一个真实的数据科学和数据科学家。希望能为后来者提供一些信息,使得读者们能够少走弯路。

【内容简介】
数据科学家目前是北美zui热门的职业之一,平均年薪突破10万美元。但数据科学并不是一个低门槛的行业,除了对数学、统计、计算机等相关领域的技术要求以外,还要相关应用领域的知识。《套路!机器学习》的写作对象是那些现在从事数据分析相关行业,或者之后想从事数据分析行业的人,意在为实践者提供数据科学家这门职业的相关信息。读者可以从阅读中了解到数据科学能解决的问题,数据科学家需要的技能,及背后的“分析哲学”。对于新手而言,一开始就直奔艰深的理论,很容易因为困难而失去兴趣zui终放弃。因此《套路!机器学习》倡导的是一种循序渐进的启发教学路径,着重在于数据科学的实际应用,让读者能够重复书中的结果,学习数据分析技能zui好的方式是实践!为了平衡理论和应用,书中包括了一些选学小节,用来介绍更多的模型数理背景或给出必要的参考资料来源。抽丝剥茧介绍技术内核,帮助大家知其然,同时知其所以然。希望笔者在北美从事数据科学工作多年踏遍大大小小不计其数的坑换来的经验,能够帮助读者更加顺利地成为数据科学家!
【作者简介】
2013年至今任美国杜邦公司商业数据科学家。北京师范大学数学科学学院本科,爱荷华州立大学统计学院硕士和博士。曾任爱荷华州立大学兽医学院统计咨询师(2009-2013)及商学院分析咨询师(2012-2013)。当选2017-2018美国统计协会市场营销统计项目主席。翻译出版了《应用预测建模》和《R语言市场研究分析》。
【媒体评论】
推荐序一

伴随着计算机硬件、数据获取和存储技术、分布式算法的飞速发展,以及海量数据的积累,数据科学成为近年来飞速发展的学科。但确切地说,数据科学还不是一门定义完善的学科。直到*近两年,大学里才慢慢开始建立数据科学相关的项目和学位。林荟博士的著作及时地填补了“如何成为成功的数据科学家”领域的空白。由于数据科学家的就业市场非常火热,很多领域的人才都想通过提升自身技术水平和经验成为真正的数据科学家。但正如林博士在书中指出的“数据科学家=数据 科学 艺术家”一样,想成为成功的数据科学家,各个领域的人才需要通过大量的学习和实践来弥补自身的欠缺。比如传统的统计学家和计量经济师需要熟悉编程、数据库操作和大数据分布式计算架构。对于刚刚毕业的理工科硕士和博士,积累利用真实数据解决实际问题的经验,提高书面和口头表达能力,提升团队协作能力和自身的影响力是至关重要的。

林博士的著作首先系统地阐述了什么是数据科学以及成为成功数据科学家的必要条件。然后通过具体的数据和例子来引导读者一步步地理解和学习如何获取这些必要的条件成为真正的数据科学家。本书中各个章节的数据和具体操作都由开源系统的R语言来实现。读者可以下载所有的数据和代码,通过自己运行这些代码来加深对每个章节知识的理解,并且可以很快灵活地学以致用来解决学习和工作中遇到的数据科学相关的项目。

对数据科学家而言,很大一部分精力是要花在数据的理解、整合和预处理上面。林博士通过自己在数据科学领域多年的经验来仔细讲解如何理解和预处理数据,这是本书的亮点之一。没有很好地理解数据,没有透彻地了解具体要解决的问题,就不可能找到好的解决方法。接着林博士用语言生动诙谐的例子介绍了在数据科学中常见的模型和方法。读者可以通过相关例子和代码来高效理解这些模型和方法,并可以快速地学以致用。虽然几乎所有的算法都有相应的程序包来实现,但作为成功的数据科学家,理解模型的理论背景和基础是必需的。因为只有理解了这些程序包的理论基础,才能有效地对不同数据不同问题来选择解决的方法并且设置合理的参数。本书对常用模型和方法进行了介绍和引申,可以帮助读者了解各个模型和方法背后的理论。简言之,本书系统地阐述了如何成为成功的数据科学家,读者可以通过本书的数据和代码,高效学习并能很快应用到实际项目中去。

伴随着大数据应用从互联网科技公司普及到传统商业领域诸如零售、制造、交通、电力和能源、航空航天、金融、医疗保健,以及大数据在各级政府部门政策制定和实施中的应用,数据科学家的需求还会逐年增高。尤其是大数据在新兴领域如工业互联网、物联网、智能家居和传感器网络的重要应用,很多相应的数据科学家的职位也会有新的需求。比如在制造业工业物联网领域的数据科学家岗位,除了上述提到的知识和经验,通常还会要求对制造业背后的物理和工程原理有所了解。具备了相应工业的基础知识和原理,数据科学家才能更好地理解数据并建立有效的模型和应用。这也对各理工科背景的人才敞开了数据科学的大门。同时通过大量用户数据的积累,数据科学家也对人文学科的人才敞开了大门。数据科学是一个飞速发展的学科,它通过数据和模型来影响各个学科和领域从而产生价值。数据科学家使得采集的数据有了真正的用武之地。对数据科学感兴趣的人才们,请从本书开始,不断提升自己的技术和经验,真正成为成功的数据科学家,为各行各业带来颠覆性的创新吧!

李明写于美国西雅图,默瑟岛

2017年6月中心

序言作者简介:李明博士,毕业于美国爱荷华州立大学(Iowa State University )拥有物理和统计学背景。曾任通用电气全球研发中心(GE Global Research Center)统计方向负责人(Statistical Leader),沃尔玛技术部(WalmartTechnology)数据科学家(Data Scientist)。现任美国亚马逊(Amazon)资深数据科学家(Senior Data Scientist)。李博士还担任美国统计学会(American Statistical Association)质量和生产力分会(Quality and Productivity Section)2017年度主席,以及统计在物理和工程应用年度奖评选委员会主席(SPES Award,one of American Statistical Association annual awards)。李博士的职业生涯中曾涉及金融、零售、制造、电力和能源、交通、医疗保健和航空航天等多个产业及相关跨产业领域。


推荐序二

又来一个找我写序的……感觉自己都快成了写序专业户,惭愧惭愧。以前叫我写序的作者我一般都不熟,但这次这位我还算熟,所以终于可以说点电视上不让播的内容了。八年前林博士和我一同进入爱荷华州立大学(俗称Ames村办大学)统计系读博,当时我们的背景完全相反:我在测度论课上奄奄一息,在R里如鱼得水,林荟在R入门课上死去活来,在理论课上羽化登仙。毫不脸红地吹个牛:要不是我当年的提携,她早就能写出这本书了。

玩笑归玩笑。总的来说,看到这本书时我还是吃了一惊。看来我读博的时候一定是遇到了一个“假林”荟。尽管上学的时候她在村办大学的牲口学院(好吧,兽医学院)有一些科研经历,但我记得也就是画画ROC曲线、跑跑逻辑回归而已。士别三年,竟然已经成了一名R 语言老司机,而且还写出一本主题这么宏大的书。书里举的例子都是种子、生猪、农业论坛,鬼知道她这几年都经历了些什么。以前她抗拒写代码,主要原因是对着电脑时间长了怕脸上长痘,看来后来还是决定为(数据)科学献身了。我们假装感动三秒钟。

书的内容我大致看了一遍,因为都是熟人,我评价起来也就不客套了;按书的内容,分两方面说:R语言和数据科学。

一般来说,我不在乎别人的R代码写得好不好,因为反正写得再好也没我写得好(明年请在我的坟头多烧两张纸)。我对计算机相关书籍的*标准是不要把“阈值”写成“阀值”,我仔细看过了,本书作者写的是对的。看R相关的书籍时,我也有个怪癖,就是找有没有 if (x == TRUE) 或者 y[which(y > 3)]这样的语句,其实语句都没错,只是看看作者的强迫癌是不是到了晚期(if (x)和y[y > 3]就已足够)。本书作者似乎没有患强迫癌。不过这也无妨,很多时候我觉得对代码吹毛求疵反而影响效率,而且不太老的司机分享的经验对新司机可能更有用。在我眼中,这本书在 R 方面有两个亮点:一是里面介绍了很多 R 的附加包,例如 caret,读者拿起来应该能很快上手;二是几乎以假乱真地模拟数据,这一点可能会为人诟病(不是真实数据),但我觉得模拟数据有其独特的价值,就是你掌控着整个小宇宙,数据从生成到建模到解释,一路的过程你都可以看清楚,而且可以变着法子变换新数据玩,学习模型使用方法。

数据科学我就不敢妄言了,毕竟我毕业之后已经转向纯码农,很少做有关统计或数据的一线工作。就我的快速粗读来看,我感觉话题的覆盖范围很广,但深度也比较适宜。广度和深度通常只能二选一,也没有优劣之分。我读书少,也限于篇幅,就随意翻两页点评两个例子,从我自己的视角管窥一下本书的价值。比如多年前我就坚信,讲主成分分析的人如果不马上讲偏*小二乘就是耍流氓,尤其是主成分回归,是流氓中的流氓,而本书作者很明确地指出了主成分回归的弊病。再比如Bootstrap方法,作者讲,“假如你只有一个样本,难道你不停地有放回抽样就能得到大样本了?”这是很漂亮的一拳。很多方法因为实施简单,所以很容易让人忘了它们的先决条件。我非常反对迷信模型或方法甚至软件,世上没那么多万金油。基于同样的原因,我很欣慰看到本书不是清一色 ggplot2图形(虽然有些图可能长得略丑,但想得美就好了)。

仔细看完本书的话应该能看出作者是苹果粉(某一页上画图时字体用的是Songti SC)以及“段子狗”。都读完了博士,选电脑还这么看脸,还整天为各种段子操碎了心,所以这位数据科学家也是蛮拼的。

谢益辉写于奥马哈


【目录】
第1章 白话数据科学 1
1.1 什么是数据科学 3
1.2 什么是数据科学家 5
1.2.1 数据科学家需要的技能 6
1.2.2 数据科学算法总结 10
1.3 数据科学可以解决什么问题 20
1.3.1 前提要求 20
1.3.2 问题种类 22
1.4 小结 25
第2章 数据集 26
2.1 服装消费者数据 26
2.2 航空公司满意度调查 33
2.3 生猪疫情风险预测数据 37
第3章 数据分析流程 41
3.1 从问题到数据 42
3.2 从数据到信息 44
3.3 从信息到行动 46
第4章 数据预处理 47
4.1 介绍 47
4.2 数据清理 50
4.3 缺失值填补 52
4.3.1 中位数或众数填补 53
4.3.2 K-近邻填补 54
4.3.3 装袋树填补 56
4.4 中心化和标量化 56
4.5 有偏分布 59
4.6 处理离群点 63
4.7 共线性 66
4.8 稀疏变量 70
4.9 编码名义变量 71
4.10 小结 73
第5章 数据操作 75
5.1 数据读写 76
5.1.1 取代传统数据框的tibble对象 76
5.1.2 高效数据读写:readr包 80
5.1.3 数据表对象读取 83
5.2 数据整合 91
5.2.1 base包:apply() 91
5.2.2 plyr包:ddply()函数 93
5.2.3 dplyr包 96
5.3 数据整形 102
5.3.1 reshape2包 102
5.3.2 tidyr包 105
5.4 小结 107
第6章 基础建模技术 109
6.1 有监督和无监督 109
6.2 误差及其来源 111
6.2.1 系统误差和随ji误差 111
6.2.2 因变量误差 117
6.2.3 自变量误差 121
6.3 数据划分和再抽样 122
6.3.1 划分训练集和测试集 123
6.3.2 重抽样 131
6.4 小结 135
第7章 模型评估度量 136
7.1 回归模型评估度量 136
7.2 分类模型评估度量 139
7.2.1 Kappa统计量 141
7.2.2 ROC曲线 143
7.2.3 提升图 145
7.3 小结 146
第8章 特征工程 148
8.1 特征构建 149
8.2 特征提取 152
8.2.1 初步探索特征 153
8.2.2 主成分分析 158
8.2.3 探索性因子分析 163
8.2.4 高维标度化 167
8.2.5 知识扩展:3种降维特征提取方法的理论 171
8.3 特征选择 177
8.3.1 过滤法 178
8.3.2 绕封法 188
8.4 小结 195
第9章 线性回归及其衍生 196
9.1 普通线性回归 197
9.1.1 zui小二乘线性模型 197
9.1.2 回归诊断 201
9.1.3 离群点、高杠杆点和强影响点 204
9.2 收缩方法 205
9.2.1 岭回归 205
9.2.2 Lasso 209
9.2.3 弹性网络 212
9.3 知识扩展:LASSO的变量选择功能 213
9.4 主成分和偏*小二乘回归 215
9.5 小结 221
第10章 广义线性模型压缩方法 222
10.1 初识GLMNET 223
10.2 收缩线性回归 227
10.3 逻辑回归 235
10.3.1 普通逻辑回归 235
10.3.2 收缩逻辑回归 236
10.3.3 知识扩展:群组lasso逻辑回归 239
10.4 收缩多项回归 243
10.5 泊松收缩回归 246
10.6 小结 249
第11章 树模型 250
11.1 分裂准则 252
11.2 树的修剪 256
11.3 回归树和决策树 260
11.4 装袋树 268
11.5 随ji森林 273
11.6 助推法 277
11.7 知识扩展:助推法的可加模型框架 283
11.8 知识扩展:助推树的数学框架 286
11.8.1 数学表达 286
11.8.2 梯度助推数值优化 289
11.9 小结 290
第12章 神经网络 292
12.1 投影寻踪回归(PROJECTION PURSUIT REGRESSION) 293
12.2 神经网络(NEURAL NETWORKS) 296
12.3 神经网络拟合 299
12.4 训练神经网络 300
12.5 用CARET包训练神经网络 302
12.6 小结 311
参考文献 312
【前言】
作者自序

首先,感谢你翻开这本书!

这是一本什么书?

这是一本关于数据的科学和艺术的书。书中介绍了数据科学这个行业、数据科学家需要的技能,以及“分析哲学”。书中对*常用、*有效的模型进行了展开。数据科学这个行业的本质是通过分析数据解决实际问题,所以本书很看重读者能够真正将书中介绍的知识付诸实践。书中的数据全部都是公开的,书中的代码,建模过程都可以重复。一切不能重复的分析都是耍流氓!

l 为什么写这本书?

当前关于大数据、人工智能的炒作着实令人眼花缭乱,如大数据平台(如Hadoop、Spark),以及一些黑箱模型(如神经网络,深度学习“实际上就是多层神经网络”)。各路媒体和“砖家”深谙吃瓜群众不明觉厉的心态,所以就像个妓院头牌似的越发摆谱。曾经的我也是吃瓜群众中的一员,妥妥地迷失在这信息时代造成的漫天泡沫中,仿佛卡在一扇旋转门里,转了很久不知道去哪。了解一件事情*有效的方法就是实践。很幸运的是,在过去的4年里,我主导了大大小小各种分析项目。正是这些实践经验造就了这本书。我并没有打算写一本数据科学的圣经,告诉你所有关于数据科学的一切。只想尽我所能地给大家还原一个真实的数据科学和数据科学家。希望能为后来者提供一些信息,使得你们能够少走弯路。

l 为什么学习数据科学?

这个问题的答案因人而异。从事某个行业和同某人结婚一样,都有很大的*性和主观性。所以下面只是我个人喜欢这个行业的理由。

1. 我把数据科学家定义为匠人。个人很享受作为一个匠人,统帅三军之能不如薄技在身。当你相信自己在某些领域有专长并且因此产生自我价值感时,就会有激情。激情是有吸引力的,就像爱一样,这是一种值得为之奋斗的感觉。

2. 这个世界上的手艺很多,为什么我做的是数据科学?因为我觉得数据科学这门手艺能够帮你培养在当今信息海啸中独善其身的技能——独立思考的能力。用数据进行决策能够让你看问题更清晰,有逻辑,理性客观。这种能力不是只有数据分析师才需要掌握的,理性思考是贯穿很多人一生的必修课,尤其是在互联网时代,通过理性思考甄别过滤信息比之前任何时候都重要。此外,人的大脑是有连贯性的,已经习得某项技能的人,再学另外一项技能的时候,学得会比上一次快一些,因为学习经验在起作用。而若是习得的基础知识是可积累、可扩展的,那么随后可能习得的技能可变现价值就会越来越高。通过数据分析进行决策就是一门可扩展性极高的技能,几乎可以扩展到这个数据时代的方方面面,而且随着社会的数据化趋势,这种可扩展性产生的“复利效应”将越来越大——有着可怕的潜力。

3. 数据科学是美的,美只有爱知道,所以热爱是选择这个行业的主要理由。不知道从什么时候开始,中国互联网上开始流传一句话:生活不止眼前的苟且,还有诗和远方。其实问题不在于缺少诗和远方,而在于你以为眼前的是苟且。如果你热爱自己当前所做的事情,那就是诗,就是远方。如果你不热爱自己所做的事情,在你找到自己真正热爱的事情之前,到哪里都是苟且。我希望阅读这本书的所有人都能够在数据分析中找到乐趣。归根结底,快乐并不是什么深奥的事情,无非是猫吃鱼,狗吃肉,奥特曼打小怪兽。

*后,感谢父母的爱和支持,感谢你们帮助我找到自己热爱的东西。感谢Scott Iverson,他是我在市场营销领域的导师,没有他,我无法将数据科学很好地应用于市场营销。感谢王正林以及所有为本书出版做出努力的人,没有你们就没有本书的问世。再次感谢你选择本书!

前 言

数据科学家目前是北美*热门的职业之一,平均年薪突破10万美元。但数据科学并不是一个低门槛的行业,除了对数学、统计、计算机等相关学科技术的要求以外,还需要相关应用领域的知识。这个职业听起来很酷,但如果你对数据分析没有兴趣的话,你也会觉得这个行业很苦。这里我默认本书的读者都至少是对这个行业有兴趣和激情的。本书的写作对象是那些现在从事数据分析相关行业,或者之后想从事数据分析行业的人,意在为实践者提供数据科学家这门职业的相关信息。读者可以从阅读中了解到数据科学家需要的技能,及背后的“分析哲学”。书中会对部分*常用,有效的模型加以展开。关于模型技术部分,我希望读者有初步统计知识,*好知道线性回归。

数据科学家这个行业的本质是应用。市面上有很多文章、出版物介绍各种数据模型,大多数此类书籍并不能让读者重复书中所述的分析过程,对于书中介绍的知识,读者真正实践起来会遇到很多困难。本书着重在于数据科学的实际应用,让读者能够重复书中的结果,这也用到了统计软件R的自动化报告功能。可能有读者会问,为什么要可重复?根据个人经验,学习数据分析技能*好的方式是实践:动手重复分析的过程,检查分析结果,发现问题后再去查询相关模型的背景技术知识。这一过程得到的学习效果远远超过死磕一本大部头的技术理论书籍,但磕了一年之后发现碰到实际问题不知道该用什么工具实践这些书中讲到的模型方法。而且对于新手而言,一开始就直奔艰深的理论,很容易因为困难而失去兴趣*终放弃。本书倡导的是一种循序渐进的启发性教学路径,从实际问题入手,抽丝剥茧进入技术内核。

本书主要部分将避免过多的数学公式,但难免有例外。我们在一些地方提到方法背后的技术细节是为了帮助读者理解模型的长处和弱点,而非单纯地介绍数理统计知识。这并不意味着这些数理背景知识不重要,相反尽可能多地了解模型背后的数学很重要且有意义,为了平衡理论和应用,我们会在有的章中加一些选学小节,用来介绍更多的模型数理背景或给出必要的参考资料来源,如果不感兴趣的读者可以跳过这些小节,不会影响本书主要部分的阅读。书中的每一章都只是冰山一角,我并不试图彻底地介绍模型,而是选择性地解释其中部分我觉得重要的地方。我会尽量将想要强调的概念和内容在分析数据的过程中体现出来,而不仅仅是数学公式符号表达。想要成为数据科学家,仅靠阅读本书是远远不够的,读者需要进一步查阅书中提到的参考资料,或者选修相关课程。

随着计算机科学的发展,不仅收集存储的数据增加了,分析数据的软件包也不断推陈出新,这极大地降低了应用统计学习方法的壁垒。现在不管会建模的不会建模的,大都听过线性回归,这个经典统计模型可追根溯源至19世纪Legendre和Gauss发表的若干关于*小二乘的论文。现在你要通过*小二乘拟合一个线性模型那是就动动指头两秒钟的事情。可在那个计算器都没有的时代,能优化误差平方和这样的东西的大牛都会被认为是火星人。那个年代美国宪法规定每十年必须进行一次人口普查,1880年排山倒海的普查资料花了8年时间处理分析,一个名叫Herman Hollerith的品学兼优的美国少年跳出来,在1890年发明了一种排序机,利用打孔卡储存资料,再由机器感测卡片,协助人口调查局对统计资料进行自动化制表,结果不出3年就完成了人口普查工作,Herman同学也顺带用这个发明拿个了工程学博士学位。你可能要问,计算能力这么落后那这伙数学家捣鼓出来的方法谁用?天文学家用。线性模型*早用在天文学研究中。研究中使用统计方法的,那时*是小众边缘群体,全都可以贴上火星制造的标签。然后盼星星盼月亮我们终于在1912年6月等到了图灵。

若不是图灵这个孩子被性取向拖了后腿,数据科学家这个行业早几十年可能就火了。当然,统计泰斗们也没有闲着,Fisher在1936年提出了线性判别分析。在20世纪40年代,又一家喻户晓的经典统计模型——逻辑回归——问世了!在20世纪70年代早期,Nelder和Wedderburn发明了广义线性模型这个词,这是一个更大的统计模型框架,它将*分布函数和系统效应(非*效应)通过一个连接函数(link function)连起来,之前的线性模型和逻辑回归都是该框架下的特例。到70年代末,可以用来分析数据的方法已经有好些了,但这些方法几乎都是线性模型,因为在那时,拟合非线性关系的计算量相对当时的计算机水平来说还是太大了。等到80年代,计算机技术终于发展到可以使用非线性模型了。Breiman, Fridman, Olshen和Stone提出了分类回归树。随后的一些机器学习方法进一步丰富了数据科学家可以使用的工具集。计算机软件的飞速发展使得这些方法模型得以应用在更加广泛的领域,应用涵盖了商业、健康、基因、社会心理学研究和政策分析,等等。数据科学家这个行业随着数据量的增加和分析软件的进步不断地向前发展。

关于分析软件,本书使用R。选择R语言的原因如下:

1. R免费,且可以在不同操作系统上使用。

2. R开源、可扩展:它在通用公共许可(General Public License)下发行,在此构架下任何人可以检查修改源程序。并且R语言含有很多*的模型。

3. R有强大图形可视化和自动化报告功能。

4. 笔者10年使用R的经验证明:无论在学术还是业界,这都是非常有效的工具。

网上有大量的R入门教程,关于用R进行数据分析的书也有好些,所以这里就不重复造轮子了,不熟悉R语言的读者可以先学习相关资料,这里我假设读者已经有一定的R语言基础。

本书布局如下,先介绍数据科学家这个行业的“分析哲学”和数据分析的一般流程。这是非技术的部分,但对于从业者来说非常重要,它帮助你对这个职业设定一个合理的预期。其中会讨论数据科学家需要的技能。之后的章节会对这里提到的部分我觉得重要的技能进一步展开讨论,由于篇幅所限,不可能详细讨论开始这几章中提到的所有技能。随后开始进入技术部分,讲分析环节的*步——数据预处理,这一步虽然不是正式建模,但却是整个分析过程中*耗时的一个环节。这步没有到位将严重影响模型质量。也正是因为预处理重要,所以单独作为一个章节,没有和章其他建模技术合并起来。第6章“基础建模技术”介绍的是一些在建模过程中需要的辅助性的技术以及建模需要注意的问题。之后正式介绍各种笔者在从业过程中经常用到的模型。

本书用来展示模型的数据大部分是通过R得到的模拟数据集。为什么用模拟数据而不是真实数据呢?原因如下:

1. 你可以控制数据生成过程,免去了传输下载数据的麻烦。

2. 你可以根据需要改变生成数据的代码,得到新的数据,观察数据变化对模型结果的影响。

3. 对于自己创建的数据,我们知道数据要表达的真实信息,那么就可以评估分析使用的模型的准确性,然后再用于真实数据。

4. 可以通过使用模拟数据在拿到真实数据前准备好代码模板,这样,当你有真实数据时就可以迅速进行分析。

5. 通过重复数据模拟的过程可以加深对模型假设的理解。

同一章后面的代码通常建立在之前代码上,但每章的代码自成系统,也就是说你不需要以其他章节代码运行结果为前提重复某章的代码。有一定R语言基础的读者可以通过学习生成数据的代码了解数据的结构以及模型假设。R语言的新手学习这些代码可能会觉得太困难,没有关系,你们可以跳过生成数据的细节,只需要了解数据的语境,都有哪些变量以及变量类型。你可以直接从网站上读取这些数据。

现在开始我们的旅程吧!


【免费在线读】

第1章 白话数据科学

目前数据科学和数据科学家成为了流行词汇。当有人问你干什么,你回答说数据科学家,对方会恍然大悟,觉得特别高大上,噢,数据科学家啊,听说过。是啊,没听说过数据科学家那就out了。如果接着问,数据科学家具体干什么的?然后就没有然后了。不知道你们有没有听说过这样一则轶事,美国*法院法官Potter Stewart被问到什么是淫秽时,他回答:“看下才知道。”这和数据科学很类似,很多概念,在大而化之的时候都可以存在,大家口耳相传,聊的不亦乐乎,但一追究细节,立即土崩瓦解。那么什么是数据科学家呢?我从谷歌查询了数据科学家的定义,下面是其中的一些:

1. 住在加州的数据分析师;

2. 数据科学家是商业(数据)分析师的进化版;

3. 比软件学家更懂统计,比统计学家更懂软件科学的人;

4. 拥有出众数据分析能力的BI咨询师,尤其是能用大量数据增加商业竞争力的人;

5. 会编程,懂统计,能通过多种方式从数据中掘金的人。

此外,很多其他职位其职责都和“从数据中获取信息”有关,比如:数据分析师,BI咨询师,统计学家,金融分析师,商业分析师,预测分析师……这些不同职业有什么区别?即便都是数据科学家,教育背景等也是千差万别的。由于媒体的炒作以及对“数据科学家”这个名称的滥用,尽管总的分析行业正在飞速发展,但大家对这个行业从业人员的认识却越来越混乱。现在大部分商业领域所谓的分析都达不到“科学”的程度,而仅仅是加减乘除的游戏.

不同的职位要求有何不同?在北美总体说来:

金融分析师一般有金融方向的MBA学位。他会用电子表格,知道会计软件,分析各部门的预算数据,分析实际经营结果和预测之间的差别,做一些预测,但这里的预测不会涉及复杂的机器学习和统计模型。

数据分析师一般有MBA学位,有一些计算机背景,很擅长使用电子表格,会用高阶的电子表格编程功能如VBA、自定义函数、宏。根据情况,会使用一些BI的软件,如Tableau,主要都是用鼠标点拖的方式。会用SQL从数据库中读取数据。我所见的商业分析师拥有很少(或没有)统计知识。所以这部分人有处理数据的知识,但是没有统计学的知识,能做的分析非常有限。

统计学家一般多在药厂、生物技术公司,做一些非常传统的混合效应模型、方差分析等生物统计分析。由于行业要求,多用SAS而非开源软件R。

BI咨询师,一般也是工商管理专业,有MBA学位,受传统的商学院教育(熟悉4Ps或6Ps,4Cs,使用SWOT法分析市场),熟练使用电子表格,很少或没有其他技术背景。

数据科学家,多是数学/统计、计算机、工程学专业出身,会使用R, Python等多种编程语言,熟悉数据可视化。大多数在入职前没有太多市场营销知识。掌握高等概率统计,熟悉如下概念:抽样,概率分布,假设检验,方差分析,拟合优度检验,回归,时间序列预测模型,非参数估计,实验设计,决策树,马尔可夫链,贝叶斯统计(很快就能在白板上写下贝叶斯定理)。

数据科学家都分布在哪些行业呢?根据Burtch Works Executive Recruiting在2015年4月发布的“数据科学家薪资调查报告”,科技(包括互联网)公司是数据科学家*的雇主。其次是一些为其他公司提供如广告、市场调查、市场分析等商业服务的公司。这两者之和超过了50%。2014年创业公司雇佣了29.4%的数据科学家,2015年这个比例降至14.3%,原因不是创业公司招的数据科学家职位少了,而是大公司招入的数据科学家增长迅速,整体基数变大。总体来说,数据科学家就业前景在北美是非常好的。调查还显示,在北美,大部分(70%)数据科学家工作经验还不到10年,因此数据科学还是个很年轻的行业。现在,大家对数据科学领域应该有个大致的感觉了。下面我们对其进一步探讨。

1.1 什么是数据科学

50年前,John Tukey他老人家就预言有个类似今天的数据科学的东西会出现。早在1962年,他在“数据分析的未来(The Future of Data Analysis)”[1] 中就嚷着要对学术统计进行改革。这篇文章当时发表在“数理统计年鉴(The Annals of Mathematical Statistics)”上,他的观点震惊了许多统计界的同事,这都是一群根正苗红的数理统计出身的大神们,那时数理统计年鉴中的文章都是满满的数学公式推导,从定义、定理到证明,逻辑缜密,理论精确。当然牛人*的特点就是可以随时任性。John推导了大半辈子公式,突然有一天发现统计不是这么玩的,于是他跳出来说:

“很长一段时间我觉得自己是统计学家,对统计推断情有独钟,将从小样本上研究得到的结论推广到更大的群体。但随着数理统计的发展,我越发觉得这个路数不大对……总的来说,我觉得自己感兴趣的是数据分析,它包括:分析数据的过程,解释该过程得到结果的技术,合理计划收集数据的方案,使得之后的分析过程更方便准确,以及所有的分析中需要用到的仪器和数学理论。”

用简短的一句话概括就是:仅仅研究数学理论不是数据科学,数据科学的内容涵盖更广。

美国密歇根大学在2015年9月宣布了一个1亿美金的“数据科学项目(Data Science Initiative)”,计划在未来4年聘请35名新教授,支持与数据相关的跨学科研究。大学媒体大胆地宣称:

“数据科学已经成为第4大科学发现手段,前3个为:实验、模型和计算。”

这里的数据科学指的是什么?该项目的网站上有如下对数据科学的描述:

“数据科学是科学发现和实践的结合,其包括对大量类型各异的数据进行收集、管理、清理、分析、可视化和结果解释。其应用遍及各种科学、平移和交叉领域。”

如前所述,数据科学是一个新兴领域。在美国,对数据分析类专业人才的需求不断上升。研究估计[2],从2015到2018年,美国预计有400~500万个工作岗位要求数据分析技能,大部分这些岗位的人才需要经过特殊训练。前面已经介绍过各种和数据分析相关的行业,这些行业对专业训练的要求参差不齐。其中数据科学家的门槛是*的。成为一个数据科学家不是件容易的事。不可否认,即使是数据科学家这个职业名称,当前也被滥用了。这些工作的本质都是从数据中获取信息。

我是这样定义数据科学的:

数据科学=数据 科学=从数据中获取信息的科学

这是一门新的科学,有各种因素推动了这门科学的产生。John提到了如下的4个驱动因素:

1. 正统统计学理论;

2. 计算机和电子显示设备的高速发展;

3. 很多领域内更多更大的数据提出的挑战;

4. 定量分析在更广的领域受到重视。

很难想象这些观点是在1962年提出的,现在看来一点也不过时。当前这4个推动力都已经存在,这也是数据科学兴起的原因。

7年之后,Tukey和Wilk在1969年又将这门科学和已经存在的科学进行对比,进一步限定了统计学在数据科学中所扮演的角色:

“……数据科学是一个困难的领域。它需要和人们能用数据做什么和想用数据做什么这样的外在条件相适应。从某种意义上说,生物比物理困难,行为科学比这两者都难,很可能总体数据科学的问题比这三者还要难。无论在现在还是短期的将来,要建立一个正式的能够给数据分析实践提供高效指导的数据科学的结构还有很长的路要走。数据科学可以从正规正统统计学那里获得很多,但它们之间也需要保持适当的距离。”

数据科学不仅是个科学领域,而且和其他已经存在很久的科学领域一样困难。统计理论只在数据科学中扮演了部分角色。

但数据科学是纯科学吗?

什么样的东西能够称为科学?我们看看John Tukey在50年前是怎么说的[1]:

怎样才能称为科学呢?回答因人而异。但下面3点大多数人都同意:

1. 智力内容(intellectual content);

2. 用能让人理解的方式组织起来;

3. 实践是检验其结果的*终标准。

第1条没有提供太多的信息,毕竟太多东西都有智力的内容,这个没有区分度。第2条也没有办法将科学和艺术区别开来。第3条我觉得才真正是区分科学和艺术的硬标准,也就是可证伪性。数据科学符合前2条,但是不总是可以证伪的。对于预测消费者是否会再次购买这样的问题,可以用真实发生的行为来评估模型表现。以及很多交互校验(cross-validation)的过程也能够用来评估模型。但对于很多市场调查数据的分析,就难以严格地科学证伪,比如分析消费者的品牌认知。对于人类心理学和行为学的研究本身就是有艺术的成分,因此相关的数据科学也同时是一门艺术。但是这和瞎猜并不一样,或许可以这样描述:这是在当前信息下能得到的*好猜测。

计算机科学之父高德纳(Donald Knuth)在他1974年出版的图书《计算机程序设计的艺术》中如此定义科学:

“能够教给计算机的知识就是科学。”

从这个角度上看,数据科学的艺术部分就更高了。计算机是数据科学不可或缺的一部分,可以说是*重要的一部分,但*不是全部。我们能完全依赖计算机取代数据科学家吗?很难。因为计算机不能和客户交流,将一个现实的商业问题转化成数据问题。计算机本身并不能决定什么数据应该收集,什么不需要。计算机无法对数据的质量做出评估。计算机无法向人解释模型结果,更无法将模型结果转化成商业决策建议。

因此数据科学还有艺术的一面,艺术部分的发挥就需要数据科学家啦!


返回顶部