简介:李舰先生现任堡力山(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和报表可视化的代称。我那个时候还没有深入业界,虽然有这样的怀疑,但是不敢真往这方面想。
(统计之都)