【COS编辑部按】 作者:李舰

简介:李舰先生现任堡力山(PMI)集团副总,曾任 Mango Solutions 中国区数据总监。专注于数据科学在行业里的应用。擅长R语言的工程开发与分析建模,是 Rweibo、Rwordseg、tmcn  等 R 包的作者。与肖凯合著了《数据科学中的R语言》,参与翻译了《R语言核心技术手册》、《机器学习与R语言》。李舰先生也曾有多篇文章在统计之都主站上发表。个人主页:http://jianl.org/

引言:这篇文章来自于我和肖凯的新作《数据科学中的R语言》的前言。原书受篇幅和语言风格所限,前言经过了一些删减,在这里将全文和增补的内容发布出来。为了尽量避免为新书打广告的嫌疑,先提前声明我们会把书中一些自认为比较有价值的经验和见解发布到统计之都上,只是希望对数据科学和R语言有个基本的认识或者了解一些作者的建议和感悟的读者大可不必去买这本书,只有对具体案例和技术感兴趣并且愿意实际操作才值得去购买。

僭称科学家我本来是不敢的,不过如今人们对数据的研究和应用的主战场在业界,“数据科学家”通常指的是一个职位的名称。现在很多公司(包括我自己的)招聘的职位都流行写“Data Scientist”,所以我自称数据科学家应该还好。从我本科进入中国人民大学学习统计学专业开始到现在的10多年时间里,我所有的求学经历和职业生涯都在和数据打交道,在数据应用的最前线感受到了业界对于数据价值理解的巨大变化。也亲身经历了从数据被冷遇到如今“大数据”成为显学这一激动人心的变革。这些年的很多经验都化成了这本书中的内容。在这里,我回顾自己在数据科学家道路上的一些经历,用自己的视角来总结这个数据时代的变化,也作为这本书的前言。

我少年时的志向和很多无名的儒生一样,“为天地立心,为生民立命,为往圣继绝学,为万世开太平”,结果也一样,就是越长大越失望、越难有新的目标,对什么事情都不执着,常被推着走。当然也不会否定自己,习惯顺其自然。就这样不小心走上了数据科学家的道路,在这条路上我经历了很多次对知识和技术的被动接受与主动融合。

我们那时高考是先估分再报志愿,很适合我,我对自己的估分很有把握,所以敢于填报一直心仪的人大,最后果然实际得分和估分只差两分,可是离最低录取线也只差两分。于是我被人大录取了,但是专业是我填报的第五志愿,也就是当时还算冷门的统计学,前面四个专业我就不提了,怕被骂黑子。

入学时是2001年,刚进入新的世纪。我对统计最初的看法和很多人一样,以为就是算GDP和物价指数。后来我在很多报告中都会讲一个段子,“搞计算机的人最烦的就是被叫去修电脑,搞统计最烦的就是一桌人吃完饭后被要求算一下账单是否对”,即使到现在场下都还有不少人笑,说明人们对统计的误解还没完全消失。遥想我自己当年,大一时去系里主办的“资料采矿研讨会”当志愿者,听到谢邦昌老师介绍资料采矿时我还在纳闷“难道台湾也搞采掘业?”后来看到数学公式才明白不是我想的那样。陈希孺老师出来时我和同学都以为可以听懂,因为报告题目是基尼系数,这个词在经济学教材中我们都懂,结果幻灯片出来后没一个人懂,陈老师开口后我比同学多懂了一点点,因为我能听懂一点点的长沙话。从此以后我知道了统计不是以前想的那样。

大二的时候,吴喜之老师给我们上了统计计算的课,这是我求学阶段最庆幸的事。当时赶上非典,这门课被拆成了两部分。一半的人逃回家了所以需要暑期回来补课,其中就包括我。当时我带了一大包北美精算师考试的习题逃回武汉打算用来打发时间,结果有一天突然在官网看到中国的考点都被取消了。于是在家期间我以研究吴老师教的R语言为乐,回来后考试得了100分,这是我学生生涯中期末考试的唯一满分,当时高兴了好久,完全不会想到现在R成为了我工作中的主要工具。我们系师资很强大,大三时就会安排自己的导师,我很庆幸吴老师收下了我,我跟着他从学年论文开始写起。算起来我学R的起点还是很高的,当年把吴老师那本《非参数统计》中的例子全部用R代码实现了一遍,开始尝到了编程的甜头,因为之前觉得像天书般的非参数统计在我写完程序后就觉得什么都懂了,而且对吴老师的引言里的内容有了更深刻的理解,直到今天,我这本书的引言里都还借鉴了好多吴老师的思想。我从当年的程序中选了一个符号检验放在本书附带的R包中,在“假设检验”一节中还用到了的,这个函数的源代码完全可以当作编程规范的反面例子,但是我丝毫不害怕丢脸,因为即使当年这么弱的水平,也可以写R程序,而且有用,直到今天还能用,这就是R最大的价值,当然也是数据科学的价值所在。从那时起我就发现了一条学统计的捷径,遇到任何不懂的地方,拿到数据后写程序算个结果再来看书。

大四的时候有门专业课叫做“数据挖掘”,这在当时是个极热门的概念,在世纪之交的时候,数据挖掘被各路专家钦点为新世纪最重要的技术。当时谷歌刚刚上市,国内的数据电子化和企业信息化也差不多成熟了,人们的问题由数据不够变成了数据过多,需要借助搜索引擎和数据挖掘才有可能获取有价值的信息。当时比较流行的说法是“知识爆炸”,各路英雄都瞄准了这个激动人心的方向。当时甚至还有数据挖掘和统计学谁主谁次的争论,也有很多认为两者就是一回事的观点。而当时的我对数据挖掘的理解只是关联规则、聚类、分类、神经网络等具体算法的实现。按照我当时的认知水平,我感觉数据挖掘只是对统计方法的补充以及对大数据量的实现,在思维方式上并没有什么不同。当然,那时我对数据挖掘的理解完全是根据其自行描述的理想状态来判断的。

由于统计专业当时仍然不热门,我考研时报了热门的北大光华,当年有个数理金融的方向,我很看好它,可惜考试结果不看好我,不过成绩不算太差,正赶上那时候软件学院刚开张,所有科目和总分都过线的话就可以调剂一个金融信息化方向的双证,于是我又被推着朝数据科学家的方向近了一步。我很喜欢自己的一个优点就是从不抱怨,为了让之前的努力完全没有白费,我就迅速地找到了自己的专业和软件的结合点,在软件学院苦练数据结构和编程技术,也多学了几种编程语言,曾经也怀疑过这样苦练的意义,因为不可能超过同资质下计算机出身的人,后来在我的研究生导师杭诚方老师教的课程中找到了自信,那是一个OLAP的练习,我感觉那些立方体实际上就是R中的多维数组,于是自己用R写了个OLAP的工具,从分析结果来看,不比其他同学用商业软件做的差,从此我开始从自己以前的专业中找到了存在感,也可以以一个更轻松的心态来随意学习自己想要的,而不是跟在编程高手后面追赶。

研究生入学的时候是2005年,数据挖掘正如日中天,但业界更喜欢热炒的一个词是“商业智能”,简称BI。BI主要是厂商提的概念,按道理应该包含数据仓库和数据挖掘。当时大的企业都有ERP(企业资源规划)系统,小的企业至少也有MIS(管理信息系统),这些系统都能采集数据,再加上其他各类应用系统,使得数据的内容过于丰富,快速而直观地发现数据中的规律是企业非常现实的需求。数据仓库的思路是将所有系统中的数据存入一个数据库,但这个数据库的设计范式与业务系统是不同的,因为其目的是数据分析而不是操作,所以数据的增删改并不重要,而数据的查询非常重要。这样的数据库就是数据仓库,可以从数据层面实现企业内所有数据的整合,同时能够快速地访问所需要的数据。所有的数据仓库都包含OLAP(联机分析处理)系统,基于数据仓库对数据的各个维度进行展现。维度就是统计中分类变量的概念,在行业中也常被写成“纬度”,这和把“阈值”写成“阀值”的是一个门派的。一般来说,BI项目的核心就是建数据仓库,而建仓库时最大的工作量是ETL(数据清洗、抽取、转换、加载等),基本上仓库建好后靠OLAP就能解决一般企业绝大多数的分析需求,因此很多时候BI都不包含数据挖掘。对厂商来说,以ETL为主导的BI项目可以用比较便宜的人工,同时也容易复制,因此慢慢地在行业内BI这个词就变味了,变成了OLAP和报表可视化的代称。我那个时候还没有深入业界,虽然有这样的怀疑,但是不敢真往这方面想。

我的实习和第一份工作是在西门子医疗,一个财务相关的部门。同事大多是会计背景,但是他们用Excel的能力让我惊叹。我的工作是分析财务数据,但是实际的内容主要是操作SAP然后用VBA写自动化报告的程序,工作的过程中我也感受到了Excel和VBA的强大,最重要的领悟就是任何语言都有可能解决任何的问题。网络上喷来喷去的只是弱点,可能影响到效率,但实际工作中,人们最关注的是能与不能,而不是好与不好。用Excel的过程中我解决了同事提出的所有问题,有些和交互协作相关的问题就用JSP来写,不过当时公司的服务器上没有Tomcat,于是自学ASP也都解决了。毕业后我留在了西门子,并随公司搬到了上海。

我很庆幸我在西门子的工作经历,可能当时入职时最吸引我的只是五百强的虚荣。但在这样的大企业形成的工作习惯是可以受用一辈子的。虽然效率不是很高,但是任何的工作细节决定了所有的努力不会白费也不会起相反作用,这里不需要个人英雄主义,只需要所有人的合力。在自己的位置上完成本职工作就是成功。工作的节奏对我这样的急性子来说太慢了,但是慢下来之后和大家的节奏契合之后常常能出一些我之前想象不到的成果,这都是我自行摸索学习不到的东西。

在感到已经没有可学的东西之后,两年过去了,当时已是2009年。继续呆在这里只需要深入学习会计和熬资历,一步步升职加薪就能变成真正的外企人,一直成为有用的螺丝钉,我之前的专业和兴趣就要白费了。于是我选择了另一个极端。源略数据是一个当时的创业公司,其理念是融合IT和统计,打动了我,一看Logo就喜欢,八卦变来的。即使现在我也佩服老板们的远见,当时要搞的就是今天的数据科学。各种类型的项目都做,不限行业不限内容,从满意度调查到BI,从运筹学到文本挖掘,都是我们的解决方案。在源略的两年是最开心的时间,一群人可以在办公室里搞烧烤,装个卫星锅看世界杯,还一起自驾千里去搞户外,有过这样的经历后现在对创业就没那么向往了。公司在这段时间靠项目过得很不错,但是最终没能迎来大家期望的对数据需求的爆发。可能在很多人看来只是个没成功的理想主义公司,但是这段经历对我来说非常重要。我作为一个资历尚浅的人可以担当很多重要的角色,很多之前的想法在实际项目中一一得到了印证,纯粹地做任何喜欢的事情,以前不确定的地方靠本事也能找到自信。当我想离开的时候,有一种出山的感觉。

在源略数据的两年时光里,数据开始慢慢变得热门。R语言也开始走入人们的视线,中国R语言会议也办起来了。记得08年的时候,一群青涩的少年与青年在人大举办了第一次中国R语言会议。当时仗着谢益辉从大多特回来的余勇,一伙当时算是R的狂热分子的人就聚到了北京。会议当天谢益辉一直在紧张调试设备,导致很多他的粉丝找他不着,还有粉丝拍着他的肩膀问谢益辉在哪里。当时的大家完全没有什么演讲水平,很多内容还留在网上今天见了也会汗颜,不过那次会议点燃了R的火种,像魏太云、邱怡轩这些当年的年轻人现在就成了绝对的大佬。在那个时代,行业里数据的应用仍然是以BI为主,但是很多新的应用已经开始兴起。除了具体的技术和工程实践,我开始意识到对数据的理解其实是最重要的能力。纯粹的技术能解决的问题很少,很多时候问题错综复杂,涉及到多个系统之间的复杂关系甚至人与人之间的复杂关系,数据散布其中形成一个又一个难解的结,再前沿的技术也难以成为一把斩断乱麻的刀,只能靠人来抽丝剥茧,然后在不同的阶段和环节选择最有效的或者自己最擅长的工具一个个地解决问题。如果之前没有一个清晰的总体的理解,那么很容易就陷入到局部的死胡同去硬撼各种难题,反之,如果找到了一条正确的道路,就可以用最经济的方式来解决问题。直到今天我都认为这些是数据科学家最重要的技能,实际上也是最容易被忽视的。

我的下一站是Mango Solutions。2011年离开源略后我对自己不再怀疑,开始坚定地向数据应用的巅峰挑战。选择无非只有两条路,读个博士搞学术或者在业界找个更专业的地方搞技术。无论哪种选择,最现实的出路就是找个狭小的领域寻章摘句或者找个狭小的圈子千锤万凿。我选择了后者,因为我信仰数据的价值,但并不执着于方法。在数据应用的领域,学术界和业界的差别不大,总之数据为王,能更多见到数据的地方就是好地方。Mango是个专业用R的公司,与我的专长非常匹配,更重要的是它可以深入业界去解决一些和数据相关的具体问题,无论大小、无论难易,客户高兴就是最好的度量,这样简单的评价方式是我喜欢的。

在Mango一呆就是四年多,已经超过了人大,是我在一个组织内呆的时间最长的了。这四年里,我接触到了欧美很多顶尖的公司和顶尖的人,从他们的项目中学到了很多东西,也帮助他们解决了不少问题,看着自己曾贡献的努力出现到了人们的日常生活中是一种很好的体验,感觉自己的价值得到了实现。这四年的时间也使我从一个青年人变成了中年人,在专业的道路上越走越远,也牺牲了很多原来的兴趣。在这个阶段,我感受到了自己之前所有的技能融会贯通了,统计、编程和沟通能力自不用说,这是基本的技能,即使是会计、市场、销售的能力也感觉很有用武之地。更重要地,我体会到了行业的差异、东西方的差异、文化的差异并没有想象的那么大。能帮到别人,就会是受欢迎的人,能解决难题,就会是令人佩服的人。

这段时间随着互联网行业的成功,“云计算”迅速成了热点。我非常欣赏这种模式,因为“云”是可以对抗传统厂商的绑架的。通过廉价开源的个体聚集成庞大的系统,这就是互联网的精神。但是发起这个概念的人更多的是计算机专家而不是数据的专家,并不是所有分析算法都可以轻松部署到云上的,因此业界的云计算大部分沦为云存储平台。正如之前的数据挖掘变成了关联规则和分类算法、商业智能变成了OLAP一样,都是很好的概念被厂商狭义化了。

很快,“大数据”的概念崛起了,迅速占据了最热门的位置,其热度是之前任何时代的热炒概念所不能比拟的。对于大数据,虽然仍然存在很多跟风炒作的,但是不得不承认它确实开创了一个全新的时代。大数据的概念完全是应运而生,因为数据的来源有了翻天覆地的变化,数据的规模完全足够,计算的能力也得到了长足的发展,新的机器学习方法也不断涌现,终于赢来了数据应用的黄金时代。社会上也开始广泛地关注数据的价值和大数据的应用,随后也产生了“数据科学”这一理性的概念。这是所有数据从业者的好时代。

这四年里,数据的价值在国内得到了认可,R语言也越来越火。工作之余,我和统计之都一群志同道合的伙伴们也时常探讨数据的价值,也闲聊各类八卦,还组织了规模越来越大的中国R语言会议,我们逐渐发现,数据已经融入到了自己的生活和价值观中。理解问题、相信数据、慎用方法、尊重需求,这就是数据科学家的思维方式。数据科学家不是拯救蒙昧的传道者,不是秀智商优越感的“理科生”,不是曲高和寡的“专业人士”,而是真正能用数据来解决问题的实干派。这在本质上与R语言是一致的,也是如今大数据时代下这两者越来越火的原因。记得2012年北京的R语言会议结束之后,郁彬老师给我们作了一次印象深刻的报告,郁老师强调的统计应该跟上现代的节奏、要主动去和计算机结合、要深入到应用领域的观点让我感觉自己做的事情很有意义。

现在我又离开了Mango,加入了PMI,开始迎接新的挑战。这些年看着身边的朋友一个一个地投身到互联网行业,在这个最激动人心的行业弄潮。我比较怕和这么多高手竞争,就仍然坚持在传统行业。我喜欢李商隐和李贺,讨厌李白,我喜欢周邦彦和史达祖,不喜欢苏轼,我喜欢用大神力于空际转身或者带着镣铐跳舞,所以虽然传统行业有太多阻碍和脑残的东西,我还是坚持用数据科学在这里做出点东西来,毕竟这里的资源实在太丰富,数据也太好。虽然传统行业里节奏太慢做事风格也太Low,可能不适合纯粹的技术大牛,但我觉得这是数据科学家的最好去处,数据科学家如果没有深入行业的能力以及无论任何条件都能全天候地从数据中挖出价值的本事,那还不如直接去搞机器学习挑战巅峰算了。

最初有写这本书的想法是在2012年上海R语言大会时,西安交大出版社的李颖找到我和肖凯开始谋划一本基于R语言与数据实战的原创书。肖老师是圈内我最崇拜的博主,李颖是统计科班出身的专业编辑,我们很快一拍即合。当时肖凯提议起名数据科学时我还从来没听说过这个词,没想到短短两年多的时间后,这个词会变得如此火热。当然,从另一面来看,我们这本书居然写了两年多还没写完。当时我还担心数据科学的书名让人摸不着头脑,不过在读了肖凯写的博客和推荐的链接之后,觉得这个词可以非常精确地描述我们的工作。我们从数据出发,介绍各种方法的原理、在R中的实现以及在具体领域中的应用。书中的内容全部来自于我们平时工作中的经验和对R语言的感悟,与传统的统计学、R语言编程或行业实战类书籍都有所不同,命名数据科学是再合适不过了。

感谢中国人民大学的吴喜之老师,从我当年开始学习R语言到现在从事专业的数据分析工作,都离不开吴老师悉心的指点,对于本书吴老师也提了很多宝贵的意见,帮助我们改正了不少错误。感谢统计之都的伙伴们,很庆幸有这样一群志趣相投的朋友,大家利用业余时间一同为统计学的普及和应用而努力,平时各类专业问题的讨论和各种各样的八卦是这本书的重要动力和源泉。感谢浙江大学软件学院金融数据分析技术专业2013级和2014级的全体同学,我在讲授“金融数据分析基础”和“R(语言)及其应用”课程的时候用到了本书中大部分的例子,同学们的参与和反馈为本书的不断完善提供了很大的帮助。

以上部分结束了书的前言,但没有结束统计之都的文章。后续我们还会把书中一些比较有趣的见解发布到统计之都,敬请期待。

发表/查看评论