数据科学家目前是北美最热门的职业之一,平均年薪突破10万美元。但数据科学并不是一个低门槛的行业,除了对数学、统计、计算机等相关领域的技术要求以外,还要相关应用领域的知识。本书的写作对象是那些现在从事数据分析相关行业,或者之后想从事数据分析行业的人,意在为实践者提供数据科学家这门职业的相关信息。读者可以从阅读中了解到数据科学能解决的问题,数据科学家需要的技能,及背后的“分析哲学”。对于新手而言,一开始就直奔艰深的理论,很容易因为困难而失去兴趣最终放弃。因此本书倡导的是一种循序渐进的启发教学路径,着重在于数据科学的实际应用,让读者能够重复书中的结果,学习数据分析技能最好的方式是实践!为了平衡理论和应用,书中包括了一些选学小节,用来介绍更多的模型数理背景或给出必要的参考资料来源。抽丝剥茧介绍技术内核,帮助大家知其然,同时知其所以然。
希望笔者在北美从事数据科学工作多年踏遍大大小小不计其数的坑换来的经验,能够帮助读者更加顺利地成为数据科学家!
艺术的R语言,秒天秒地秒统计;Get!女神学姐数据科学技能包
作者自序
首先,感谢你翻开这本书!
这是一本什么书?
这是一本关于数据的科学和艺术的书。书中介绍了数据科学这个行业、数据科学家需要的技能,以及“分析哲学”。书中对最常用、最有效的模型进行了展开。数据科学这个行业的本质是通过分析数据解决实际问题,所以本书很看重读者能够真正将书中介绍的知识付诸实践。书中的数据全部都是公开的,书中的代码,建模过程都可以重复。一切不能重复的分析都是耍流氓!
为什么写这本书?
当前关于大数据、人工智能的炒作着实令人眼花缭乱,如大数据平台(如Hadoop、Spark),以及一些黑箱模型(如神经网络,深度学习“实际上就是多层神经网络”)。各路媒体和“砖家”深谙吃瓜群众不明觉厉的心态,所以就像个妓院头牌似的越发摆谱。曾经的我也是吃瓜群众中的一员,妥妥地迷失在这信息时代造成的漫天泡沫中,仿佛卡在一扇旋转门里,转了很久不知道去哪。了解一件事情最有效的方法就是实践。很幸运的是,在过去的4年里,我主导了大大小小各种分析项目。正是这些实践经验造就了这本书。我并没有打算写一本数据科学的圣经,告诉你所有关于数据科学的一切。只想尽我所能地给大家还原一个真实的数据科学和数据科学家。希望能为后来者提供一些信息,使得你们能够少走弯路。
为什么学习数据科学?
这个问题的答案因人而异。从事某个行业和同某人结婚一样,都有很大的随机性和主观性。所以下面只是我个人喜欢这个行业的理由。
1. 我把数据科学家定义为匠人。个人很享受作为一个匠人,统帅三军之能不如薄技在身。当你相信自己在某些领域有专长并且因此产生自我价值感时,就会有激情。激情是有吸引力的,就像爱一样,这是一种值得为之奋斗的感觉。
2. 这个世界上的手艺很多,为什么我做的是数据科学?因为我觉得数据科学这门手艺能够帮你培养在当今信息海啸中独善其身的技能——独立思考的能力。用数据进行决策能够让你看问题更清晰,有逻辑,理性客观。这种能力不是只有数据分析师才需要掌握的,理性思考是贯穿很多人一生的必修课,尤其是在互联网时代,通过理性思考甄别过滤信息比之前任何时候都重要。此外,人的大脑是有连贯性的,已经习得某项技能的人,再学另外一项技能的时候,学得会比上一次快一些,因为学习经验在起作用。而若是习得的基础知识是可积累、可扩展的,那么随后可能习得的技能可变现价值就会越来越高。通过数据分析进行决策就是一门可扩展性极高的技能,几乎可以扩展到这个数据时代的方方面面,而且随着社会的数据化趋势,这种可扩展性产生的“复利效应”将越来越大——有着可怕的潜力。
3. 数据科学是美的,美只有爱知道,所以热爱是选择这个行业的主要理由。不知道从什么时候开始,中国互联网上开始流传一句话:生活不止眼前的苟且,还有诗和远方。其实问题不在于缺少诗和远方,而在于你以为眼前的是苟且。如果你热爱自己当前所做的事情,那就是诗,就是远方。如果你不热爱自己所做的事情,在你找到自己真正热爱的事情之前,到哪里都是苟且。我希望阅读这本书的所有人都能够在数据分析中找到乐趣。归根结底,快乐并不是什么深奥的事情,无非是猫吃鱼,狗吃肉,奥特曼打小怪兽。
最后,感谢父母的爱和支持,感谢你们帮助我找到自己热爱的东西。感谢Scott Iverson,他是我在市场营销领域的导师,没有他,我无法将数据科学很好地应用于市场营销。感谢王正林以及所有为本书出版做出努力的人,没有你们就没有本书的问世。再次感谢你选择本书!
前 言
数据科学家目前是北美最热门的职业之一,平均年薪突破10万美元。但数据科学并不是一个低门槛的行业,除了对数学、统计、计算机等相关学科技术的要求以外,还需要相关应用领域的知识。这个职业听起来很酷,但如果你对数据分析没有兴趣的话,你也会觉得这个行业很苦。这里我默认本书的读者都至少是对这个行业有兴趣和激情的。本书的写作对象是那些现在从事数据分析相关行业,或者之后想从事数据分析行业的人,意在为实践者提供数据科学家这门职业的相关信息。读者可以从阅读中了解到数据科学家需要的技能,及背后的“分析哲学”。书中会对部分最常用,有效的模型加以展开。关于模型技术部分,我希望读者有初步统计知识,最好知道线性回归。
数据科学家这个行业的本质是应用。市面上有很多文章、出版物介绍各种数据模型,大多数此类书籍并不能让读者重复书中所述的分析过程,对于书中介绍的知识,读者真正实践起来会遇到很多困难。本书着重在于数据科学的实际应用,让读者能够重复书中的结果,这也用到了统计软件R的自动化报告功能。可能有读者会问,为什么要可重复?根据个人经验,学习数据分析技能最好的方式是实践:动手重复分析的过程,检查分析结果,发现问题后再去查询相关模型的背景技术知识。这一过程得到的学习效果远远超过死磕一本大部头的技术理论书籍,但磕了一年之后发现碰到实际问题不知道该用什么工具实践这些书中讲到的模型方法。而且对于新手而言,一开始就直奔艰深的理论,很容易因为困难而失去兴趣最终放弃。本书倡导的是一种循序渐进的启发性教学路径,从实际问题入手,抽丝剥茧进入技术内核。
本书主要部分将避免过多的数学公式,但难免有例外。我们在一些地方提到方法背后的技术细节是为了帮助读者理解模型的长处和弱点,而非单纯地介绍数理统计知识。这并不意味着这些数理背景知识不重要,相反尽可能多地了解模型背后的数学很重要且有意义,为了平衡理论和应用,我们会在有的章中加一些选学小节,用来介绍更多的模型数理背景或给出必要的参考资料来源,如果不感兴趣的读者可以跳过这些小节,不会影响本书主要部分的阅读。书中的每一章都只是冰山一角,我并不试图彻底地介绍模型,而是选择性地解释其中部分我觉得重要的地方。我会尽量将想要强调的概念和内容在分析数据的过程中体现出来,而不仅仅是数学公式符号表达。想要成为数据科学家,仅靠阅读本书是远远不够的,读者需要进一步查阅书中提到的参考资料,或者选修相关课程。
随着计算机科学的发展,不仅收集存储的数据增加了,分析数据的软件包也不断推陈出新,这极大地降低了应用统计学习方法的壁垒。现在不管会建模的不会建模的,大都听过线性回归,这个经典统计模型可追根溯源至19世纪Legendre和Gauss发表的若干关于最小二乘的论文。现在你要通过最小二乘拟合一个线性模型那是就动动指头两秒钟的事情。可在那个计算器都没有的时代,能优化误差平方和这样的东西的大牛都会被认为是火星人。那个年代美国宪法规定每十年必须进行一次人口普查,1880年排山倒海的普查资料花了8年时间处理分析,一个名叫Herman Hollerith的品学兼优的美国少年跳出来,在1890年发明了一种排序机,利用打孔卡储存资料,再由机器感测卡片,协助人口调查局对统计资料进行自动化制表,结果不出3年就完成了人口普查工作,Herman同学也顺带用这个发明拿个了工程学博士学位。你可能要问,计算能力这么落后那这伙数学家捣鼓出来的方法谁用?天文学家用。线性模型最早用在天文学研究中。研究中使用统计方法的,那时绝对是小众边缘群体,全都可以贴上火星制造的标签。然后盼星星盼月亮我们终于在1912年6月等到了图灵,如图1所示这个天才的降临。
图1
若不是图灵这个孩子被性取向拖了后腿,数据科学家这个行业早几十年可能就火了。当然,统计泰斗们也没有闲着,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语言的新手学习这些代码可能会觉得太困难,没有关系,你们可以跳过生成数据的细节,只需要了解数据的语境,都有哪些变量以及变量类型。你可以直接从网站上读取这些数据。书中的代码和数据可以在这个github页面上找到:https://github.com/happyrabbit/DataScientistR
现在开始我们的旅程吧!
这本书没有勘误表吗?
下载的地址在哪里?
下载巨慢,好不容易下载到88%的停了,然后就下载不料了,还不与提供云盘的地址。