通向数据科学(走进数据科学)
为了能更好地理解数据科学,我们即将翻开历史,检视它所包含的新规则,以及它所带来的新思维,同样,还有它所带来的新变化。
数据科学领域的历史“数据科学”这一术语的流行要早于“大数据”的出现(就像“数据”一词要早于“计算机(computer)”400年出现)。1962年,当John W. Tukey写了《数据分析的未来》(The Future of Data Analysis),他预见了数据分析的新方法的崛起相比于方法论来说更像是一门科学。1974年,Peter Naur在瑞典和美国出版了《计算机方法的简明调查》(Concise Survey of Computer Methods)。尽管这仅仅是对当时的数据分析方法的综述,但这本书却第一次定义了数据科学是“一门研究数据处理的科学,在创立之初,数据与它所表示的事物之间的关系属于其他学科领域的范畴”。所以,在那时,任何有熟练计算机知识同时有理解数据语义的人都在一定程度上算是一名数据科学家。因为没有精致的工具,没有神奇的范式,也没有新科学做它的支撑,所以这个词过了这么久才流行起来也一点儿都不奇怪了。
由于在之后的10年里,计算机技术与统计学开始交汇,Tukey的观点开始显现出来,尽管这种变化显得十分细小。直到20世纪80年代,它才开始通过一项在数据科学界十分出名的方法得到发展,而这个方法就是数据挖掘。随着时间脚步的行进,数据的科学化处理达到了新的高度,而数据科学则在1996年叩响了学术界的大门。1996年,在日本的神户,分类学社团国际联合会(International Federation of Classification Societies)举行了一个大会,大会的名称叫“数据科学、分类学以及相关方法”(Data Science, Classification and Related Methods)。它使得数据科学在学术圈内声名鹊起,同时也使得它与其他的数据分析术语(例如分类学)区别开来。显然,数据科学的涵盖范围要大得多,这使得数据科学渐渐成为了一支独立学科。
在之后的1997年,《数据挖掘与知识发现杂志》创刊了,定义了数据挖掘是“从大数据集中抽取信息”的概念,这是第一次数据科学方法在科学界得到了与工业界内一样的流行与认可。
随着数据库变得更大,数据科学的角色在20世纪90年代后期的出镜率也变得更高。这种观点也随着 Jacob Zahavi在他1999年的文章《为知识中的金矿而挖掘数据》中得到放大。他写道“传统统计方法在小数据集中可以运行得很好。然而,今天的数据集可能会涉及上百万行以及上百列的数据。扩展性是数据挖掘中的一个巨大问题,另一个技术挑战在于开发出更适于分析数据,发现非线性关系以及元素间相互作用的模型,以及专用的数据挖掘工具来帮助网站进行决策”。这非常清晰地勾画了数据分析的新框架,而数据科学则是在将来帮助解决这个需求的领域。
进入2000年后,关于数据科学的出版物开始呈现增长态势,尽管主要在学术范围内。关于数据科学的报刊杂志以及书籍变得越来越多,同时吸引了大量研究者的关注。在2005年9月,如我们在上一章节内提到的,“数据科学家”一词在一篇政府报告中被第一次定义了(尽管只是一般的表述)。之后,在2007年,数据科学重点实验室在中国上海成立了。
2009年对数据科学来说是重要的一年。朱扬勇与熊赟,两位是之前提到的重点实验室的研究员,在他们的“数据学导论”中提到,数据科学是一门新的科学,明显地不同于自然科学与社会科学。此外,在2009年1月,Hal Varian(谷歌首席经济学家)提出,在接下来的10年里,统计学家(当别人并不非常熟悉数据学时,也会被用来指称数据科学家)将会是一个迷人的职业。最终,在2009年6月,Nathan Yau的文章《数据科学家的崛起》被刊载于《Flowing Data》,使得数据科学家这一角色对于非学术世界的人们变得熟悉起来。
在现在这个10年(2010~2020年)中,关于数据科学的出版物变得丰富,尽管除了你正在读的这本书之外,还没有权威的信息途径论述如何有效地成为数据科学家。“数据科学”一词得到了具体地定义,其精华则被总结在Drew Conway 在2010年9月的韦恩图中(见图1)
图1 关于数据科学的韦恩图
图1所示为Conway关于数据科学的韦恩图,图例展示了数据科学的主要组成部分以及它与机器学习和传统研究的差别。通过“Danger Zone”(危险区域),他大致是指“黑客/解密者”对计算机系统的安全危害(图片源: DrewConway)。
他的话提供了对成为数据科学家更深刻的理解,“一个人需要学习许多知识去变成他所渴望成为的全能数据科学家。但不幸的是,仅仅通过读书和辅导练习并不能解开这些扭结。因此为了简化讨论,同时也把我的思考放到已经拥挤不堪的创意市场里去,我将数据科学的韦恩图呈上……黑客技术、数学和统计学知识,还有专业知识。
最终,在2012年9月,Hal Varian的这10年里迷人的职业的表述竟演变成一篇文章,并刊登于哈佛商业评论(“数据科学家:21世纪里最性感的职业” ),这篇文章更是引爆了大众对数据科学家这一角色重要性的认知。
值得注意的是,与这些出版物和大会同时发生的,还有许多在线的关于数据科学的社会活动。第一个官方的数据科学小组是于 2009年6月在LinkedIn上成立的(以数据科学家小组而知名),而且他们还有自己的独立网站(现网址datascientists.net以及原网址datascientists.com)。其他的数据科学小组也已在2008年上线,然而自从2010年以来,他们的数量就以燎原之势增加,同样增加的还有数据科学家的在线招聘的帖子,这会在第13章展开叙述。同样值得注意的还有在过去的几年里,还有很多关于数据科学的非学术会议。这些会议以研讨会的形式进行,针对数据领域的专家、项目经理和执行层开展。
新规则数据科学带来了许多新规则的繁荣,这些新规则由一些很棒的工具组成,主要有如下几种。
- MapReduce是一个并行、分布式的算法,用来把负责的任务分割成一系列简化的任务,之后用一种非常有效率的手段解决它们,基于此可以增加处理复杂任务的性能以及降低计算资源的成本。尽管这个算法之前就存在,但它在数据科学中的广泛应用仍增加了它的知名度。
- Hadoop分布式文件系统(HDFS)是一个旨在充分利用并行计算技术的开源平台,它基本上是通过把大数据分拆成小块然后分发给在网络上计算机来实现管理。
- 高级文本分析常常是指自然语言处理(NLP),这是一个数据信息领域,包含许多从非结构化文本数据提取有效信息和商业智能的技术。在数据科学之前,这个领域并不存在。
- 大规模数据程序语言(例如Pig、R、ECL等)是可以有效地处理大数据集的编程语言。它们在数据科学出现前处于开发状态或完全不存在。
- 替代性的数据库结构(例如,HBase、Cassandra、MongoDB,等等)是一些用并行计算技术来处理大数据的归档、查询以及编辑的数据库。
你可能对在现代Windows操作系统内使用的新技术文件系统(New Technology File System,NTFS)有所了解,这是一个在大多数个人电脑上不太出问题的文件系统,相当令人满意。但它对于在互联的计算机网络内处理大量数据并不适用。另外,NTFS有一个256 TB的文件大小限制,而这对于许多大数据应用来说是远远不够的。基于UNIX的文件系统面临类似的挑战,而这也是为什么当Hadoop被开发出来之后,必须创建一个新的文件系统的原因,一个适用于计算机集群的文件系统。HDFS允许用户去浏览计算机集群上的所有文件而且可以运行一些基本的操作就像在一立的计算机上操作一样(尽管大多数文件可能是散布在整个网络上的)。
Hadoop的灵魂是MapReduce,这是一个使计算机网络可以用低风险来高效分拆数据的规则。所有的数据都会被复制,以预防集群内的计算机(通常称为节点)发生崩溃。还有一些用来负责任务的时序安排和管理数据流的管理节点。首先,所有数据会通过一组称为Mapper(映射器)的集群节点执行映射操作。一旦执行结束,另一组节点会接受归约(Reduce)任务,当之前处理过的数据处理成有用的输出,这一组节点称为Reducer(归约器),也可能任务最后还会经过Mapper。所有的事情都是通过管理节点来协调的,管理节点可以保证所有阶段的输出在集群上都是被安全存储的(以多个副本的形式)。一旦整个处理流程结束,用户就会得到最后的输出结果。MapReduce规则包含了许多相当单调的程序。它的巨大优势在于它能确保该流程会完成地比较快,而且高效地利用所有可用资源,同时降低因为硬件故障而导致数据丢失的风险(这对于大型集群来说非常常见)。
文本分析已经存在一段时间了,但数据科学引入了一些高级的技术使得之前的技术显得相形见绌。现代(高级)文本分析使用户可以处理大量的文本数据,在允许诸如拼写错误、句内的多词分割以及其他问题的前提下,能够精确快速地找到文本模式。高级文本分析能够在社交媒体的帖子上确定情绪表达,识别出是否某人的评论是直述或是嘲讽,而这些在没有利用这些高级文本分析方法前对于机器来说是极难处理的,这种进步使通过在Hadoop环境内部署人工智能算法应用成为可能。
大规模数据程序语言,例如Pig、R和ECL的开发就是为了解决大数据问题,同时它们与Hadoop环境可以很好地融合(事实上,Pig就是Hadoop生态系统的一环)。R在大数据出现前就存在,经历了一系列大的改变,现在可以与Hadoop连接,同时可以处理HDFS里的文件。由于编程语言在现代并不是非常难于开发,很有可能在您读这本书的时候,这个行列里又会出现新的编程语言,所以把眼睛睁大总没有什么坏处。到这个10年结束的时候,很可能现有的这些语言并不会成为数据科学家的首选语言(尽管另一种可能是R语言仍会广泛流传,基于现在它有非常巨大的用户群)。
多亏了数据科学,新的替代性数据库结构才会到来。这些结构包括哈希表(例如,JBoss数据网格、Riak),B-树(例如,MongoDB、CouchDB),以及日志结构的合并树(例如,HBase、Cassandra)。不同于传统的数据库,这些模式类型旨在服务于大数据,因此它们在数据库内读写数据的方式是比较灵活弹性的。每一种类型都有它们适用与不适用的范畴,由于传统数据库在记录超过一定的级别后会崩溃,所以相比于传统数据库,它们要好用一些。举例来说,如果你有一个由上百万行列记录的大型数据库(如大型的数据仓库),要在这样的数据库中找到某一列中的最大值可能会超过很多人愿意等待的时间。同样的查询在列式数据库中(如HBase)用不了1秒。
所有这些规则是基于一组计算机的概念之上的,也就是一个计算机集群,它们的运行远远好于任何一立的(甚至是超级的)计算机,只要集群足够大。这种创意是基于智能和定制策略来规划基本的任务,好让它们能够被计算机集群高效地处理,主要是优化处理问题的流程。自从诞生以来,这些新规则的人气不断增加,而且得以迅速的发展进化。有大量的关注度(和钱)投入到这些科技中去。学习他们在不久的将来一定会获得回报。
新思维与随之而来的变化到现在为止,你大概能认识到数据科学不仅仅是一些聪明的工具、方法论和运用方法了。这是一种对数据的全新的整体认知。很自然地,这种规则转变带来了人们在处理相关项目时的方式,如何参与亟待解决的问题,以及如何以从业者的身份使自己成长。
数据科学需要我们更系统地思考,将对问题的创见性方法与实际情况结合在一起。这就好像是以一个优秀的建筑师一样的思维方式,将艺术的角度(通过设计)与工程本身,以及时间的管理一起结合起来。规划对于使用大数据来说是至关重要的,尽管是同一件任务,但不同的执行方式会涉及对资源极大差异的需求,而最后产生的结果却可能不会有多大不同。
由数据科学家带来的这种新思维带变化是显而易见的。数据科学家通常工作于由数据建模师、商务人员以及其他专业人士(视不同行业)组成的不同团队中。而相应地,他们几乎不会像经历传统瀑布模型的程序员一样,独自一人工作很久。
此外,数据科学家通过查阅现有文献,并与熟悉亟待解决问题的不同领域的人士建立联系,把问题分解成可以被处理的小问题来逐渐解决。
数据科学家成功的必备技巧并不少见。一个数据科学家应该能够轻易地学习新知。随着大数据技术的快速发展的脚步,数据科学家必须具备敏锐的头脑来快速掌握新的方法以及熟悉新的工具。
数据科学家需要弹性灵活,轻易地适应新商业领域、新团队成员以及新的工具(例如他刚开始工作所用的工具和工作结束时所用的工具有很大的不同)。他需要擅长建立联系,并认识到他所缺乏的技能并开始设法学习它们。总之,数据科学家所需的几乎所有技能是需要能够被快速转变,并且运用于广阔而且不同的场景中。最后,他应该是一个能被任何团队,特别是IT团队所接纳的强力人物。
本文节选自《数据科学家修炼之道》
内容简介
数据科学家是指采用科学方法、运用数据挖掘工具寻找新的数据洞察力的工程师,他们往往集技术专家和数据分析师的角色于一身。在IT行业中,数据科学家将在创造力、沟通能力以及与商业世界的联系方面得到更多的锻炼机会,是当前非常有发展潜力的新兴职位。
本书全面介绍了成为数据科学家应当了解的各类知识。全书共分18章,首先介绍了数据科学与大数据、数据科学的重要性,接着介绍了数据科学家的类型、思维体系、技术资质、经验、社交圈、所用的软件、学习新知和解决问题,另外还介绍了机器学习与R语言平台、数据科学的处理流程、所需的具体技能,最后介绍了数据科学求职、自我展示,并提供了一些有关职业数据科学家和资深数据科学家的案例学习。
本书内容全面、轻松易读,非常适合从事数据科学相关工作的读者阅读,是一本可以帮助读者应聘数据科学家职位的求职指南。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com