新鲜资讯

学长分享 | 不想当统计学家的程序员不是一个好数据科学家

发布时间:2018-07-01

很多大学开始专门开设数据分析类专业,Data Science作为近年来热门的申请专业也是竞争越来越激烈。但也正因如此出现了随大流的情况,很多同学没有清晰的自我定位,只是因为这个专业很火就决定申请,草率的决定可能让你陷入非常尴尬的境地。

 

所以邀请了大牛基友韩老师给大家科普一下到底怎样的人适合学DS,学了DS之后会有怎样的发展。

 

Q&A

 

Q:“Why Data Science?本科是数学和物理的双学位,如此学霸的背景,你为什么没有选择继续在数学和物理方向学习呢?什么契机让你对Data Science方向产生了兴趣?

 

数学和物理都是基础类学科,为应用实践提供了理论基础。它们之所以得以成为基础学科是因为许多领域方向需要这些知识来作为根基,反过来说,这些学科给我们提供了很丰富的未来发展的选项,这也是我当初选择学习数学和物理的一个主要原因。

 

通过本科学习,我发现我对应用的兴趣大于对理论科学的热爱,于是我把重心向应用领域偏移,把应用数学作为一个切入口,从中寻找感兴趣的具体方向。

 

应用数学主要分3个领域,计算数学,金融数学,统计。计算数学相对偏理论,金融我不擅长,所以留下了统计方向。那个时候刚好是DS兴起的初期,学术界普遍认为这将是未来发展的主要方向,NYU也是刚成立DS program,于是这个融合了统计,数学,计算机的交叉学科吸引了我的目光,机缘巧合的赶上了一波学术界的潮流。

 

 

 

Q:就你的理解来说Data Science到底是学什么的呢?它和statistics的区别在哪里?

 

我的理解,DS是统计,数学,计算机的结合体。

统计角度,DS主要涉及到概率分布,统计推论,线性回归;

数学角度,DS主要涉及到线性代数;

计算机角度,DS主要涉及到编程,算法。

简单来说,DS告诉我们在拿到实验数据后有多少种处理方式以及每种方式对应可以得到的结论和涵义。

 

从表面来看,DS和stat有很多很多共同之处,例如它们都要学习概率和统计推论,细分下来还是有一些不同点。

 

首先,stat比DS更注重理论基础,比如统计推论中的假设检验,这是stat中的重点和难点,然而DS只需要知道它的表现形式和计算步骤就足够了;

其次,stat不仅要知道如何用假设检验分析数据,还要学习怎样设计实验来得到我们想要的数据结果;

除此,stat无需什么算法来对拘束进行运算,DS在统计方法上延伸出许多算法来计算出数据间的关系;

另外,stat已经存在很多成熟的工具来便于直接做统计处理,而DS在算法上的多样性使得它需要用编程语言来自行实现。

 

 

 

Q:在NYU的研究生学习中,能够培养和提高哪些技能?

 

首先,我在NYU学习的所有课程教授一致默认学生都已经掌握所需编程技能,与DS相关的课程无论是不是计算机系开设,上课所学全部为理论知识,对于如何具体实践留给学生在作业当中自行探索研究。

 

记得第一次作业要求用python,当时我对python一无所知,花了满满两天时间自学一遍,直接用作业上手练习。其次是课业量之大根本没有喘息的时间,尤其是在前两周刚学会python的阶段。每次的作业虽然预留了一周时间,但对我来说在同学和TA的帮助下才能勉强按时完成,然而在提交作业的当天,新一轮作业扑面而来。也正是这样紧凑的实践过程,让我时刻在巩固着学到的每个知识点,同时编程能力在不断练习下得到快速的进步。

 

值得一提的是所有的作业都有一个体系,围绕着一个问题层层递进,最终在最后一问得到全局的结论,这样的体系有助于把学到的理论按实际操作顺序整合起来。这样的练习反复多次,培养了对各类型数据的敏感程度,待再次遇到问题时可以清晰地从头到脚把对应的思路和算法剖析出来,这是我认为很重要的一个能力。

 

很多对数据方向有兴趣的同学,想进入这个领域但是却不知道从何入手开始学习,给想入门的菜鸟级选手一些建议吧。

依然从统计,数学,计算机三个方向考虑。就统计而言,在我看来,基本的统计学是基于离散和连续的概率分布模型之上构建出来的理论系统,因此对于初学者,完善的掌握这些概率分布模型对于以后深入的学习会有很大帮助。其次是线性回归。

 

再来说数学。DS所用到的数学理念就我个人的观点会比统计学更多,这里我想说的是数学理念而不是数学概念,也就是说,如果想要在这个领域取得一定的突破,我们泛泛的讲,线性代数中所提出的定义,例如向量,矩阵,空间等,在学习的过程中会传递非常强的将问题‘代数化’的思考模式,对于DS也是至关重要的。

 

最后来谈计算机方面。对于这一领域我会推荐直接学习python。如果有计算机系统学习的  背景那对新语言的学习会有很大帮助,如果之前没有过编程经验,python也可以是一个不错的选择,一方面python是开源的,会有成吨的资源以供参考,另一方面,很多DS相关的library已经很成熟。再者,一开始我并不建议从计算机这个学科的角度来准备算法,以我自己的学习经验,可能一开始从数学或者统计的角度来做这个准备,在有一定基础后再来介入与计算机相关的一些算法概念。

 

再者有一点,如果是在以上三方面已经有一定的背景的同学,我认为深入了解并行计算的概念非常重要。因为单机处理大数据慢慢变得不现实了,需要用更强大的计算资源进行运算。但对于背景空缺比较大的同学来说,这件事可以不用在一开始就提上日程。

 

 

 

Q:申请方面有什么建议给同学们,学校项目有推荐吗?

 

在入学前具备编程能力,当然这个因每个人的背景不同而异。python和r对于data science是基础的编程语言,在此之上掌握其他的编程语言,例如sql,matlab和c++,都可以作为掌握的编程技能写入简历里面,不失为锦上添花。

 

能有与之相关的实习经历最好,没有的话,做一些相关的项目,这个可以寻求现在所在学校教授的帮助,在他们当中找寻一些加入此类项目的机会。这些实践不仅对申请有帮助,更可以帮助你更快适应这一领域的学习及科研。

 

浏览与DS相关的论坛或群,了解发展动向,或许对PS有所帮助。这里的帮助会有多大不太好量化,但是毕竟需要进入这一行业,了解行业前沿和动态,是非常好的预备课程。申请有申请的流程和指标,我理解来说,申请者被录取的最基本的原因是达到了校方的期待和要求,他们认为你对这个领域有极大的热情且能够胜任课程,当然入学时肯定还会有一些量化的要求。那以上三点不但可以为申请加分,在我看来更重要的是,抛开申请不谈,以上三点也会为你自己的知识储备添砖加瓦。

 

 

 

Q:在纽约呆了这么多年,说说你的生活体验?

 

相对于行政区划,纽约对我而言是一个区域性的概念。我在石溪,也就是长岛中部的北岸生活了大概5年,在皇后区生活了1年,在新泽西生活了1年,在曼哈顿上了两年的学。纽约大概就是我日常生活区域的总称。

 

在NYU的时候,教学楼全都在市区里,毫不夸张的闹市区里,有非常多非常多好吃的店,以致于现在我也不知道NYU的学校食堂在哪。可以吃的最多的还是麦当劳,就是QR线边上的那一家。一般到晚上了,就买一份带着然后上地铁回家。有好吃的吃不成,因为还有堆成山的作业,每天都是ddl这毫不夸张,地铁会坐80分钟的样子,搬去新泽西后会稍微近一点。在地铁上是最放松的时间,感觉不用面对上不完的课写不完的作业以及又要吃一模一样的面比肉多的炸鸡,那时候地铁准点而且有位置坐就是今天最幸运的事。

 

大概一个月有上三四次机会,会在柯朗和stern的楼围成的花园里晒太阳,只有这个时候会偶尔想一想体验或者感受或者反思这一类问题。对我而言这就是在纽约最真实的感受,或许停下来感受的时间微乎其微,但我能感受到自己是在实实在在的做着一些对我自己有意义的事,但是要说出来是什么意义对我而言很难。但后来离开曼哈顿又回到石溪的时候,我有时还是很想那个地方,毕竟旁边那家越南牛肉米粉肉多汤足还是很好吃的。

 

 

什么是DS?

 

数据科学就是从数据中提取信息知识,即是数据挖掘与预测分析的延伸,亦是发掘知识与数据的过程。所以,通俗来讲,数据科学,就是通过分析数据,来挖掘获得这些数据中的潜在信息。

 

运用庞大的数据进行分析来支持商务决策(data driven decision making)这是数据科学的最终目的,概括来说Data Science的研究和应用方向分为以下部分:

 

Predictive Analytics:

     分析数据来预测未来可能发生的事情。

Descriptive Analytics:

     分析数据找出过去事件的特征和正在发生事件的趋势。

Prescriptive Analytics:

     分析数据来找出最佳措施、取得最优化的结果。

 

数据科学类技能大致可分为三类:

 

算法(Algorithms): 数学、统计、算法、模型等理论知识是解决任何数据问题的核心。数据科学背后的算法模型以及数据实验是怎样被设计和检测是必不可少的技能。

编程(Engineering): 数据的获取、处理和储存是必不可少的知识。同时,熟练掌握编程语言和分布式计算将帮助你处理大规模的数据。

沟通(Communication): 数据在外行人眼中就如同一门外语,如何将数据分析结果转化为可读性极强的商业报告是必须掌握的技能。

 

DS(数据科学) VS DM(数据挖掘)

 

数据挖掘是关于在数据集中查找趋势。并利用这些趋势来确定未来的模式。这是知识发现过程中的一个重要步骤。它通常包括分析以前忽略的大量历史数据。

 

数据科学是一个研究领域,其中包括来自大数据分析,数据挖掘,预测建模,数据可视化,数学和统计的所有内容。数据科学被称为科学的第四范式。(其他三个是理论,实证和计算)。学术界经常在数据科学领域进行独家研究。

 

以下是数据科学和数据挖掘之间的区别:

 

数据挖掘是一项活动,它是数据库(KDD)过程中更广泛的知识发现的一部分,而数据科学是应用数学或计算机科学领域的研究领域。

通常数据科学是广义的,而数据挖掘被认为是利基。

 

数据挖掘下的一些活动如统计分析,编写数据流和模式识别可以与数据科学相交叉。因此,数据挖掘成为数据科学的一个子集。

数据挖掘中的机器学习更多地用于模式识别,而在数据科学中它具有更广泛的用途。

 

注意:不应将数据科学和数据挖掘与大数据分析相混淆,并且可以让Miners和科学家同时处理大数据集。

 

Data Science专业的课程设置

 

美国大学大致分四类:

 

研究类型的Research School。必须要有PHD(博士学位)。

 

综合性的Teaching School。它不一定有PHD,基本上以教学为主,目的是培养学生尽快地去工作。但也会有带有研究性质的Master(硕士学位)。

 

四年制大学Liberal Arts College。它比综合性大学还要再差一点,完全没有research,基本上只有本科教育。

 

两年制的Community college,它只是高中的延伸。

 

Data Science 专业课

 

有的学校Data Science这个专业,会从三个不同的学科,各选出一些跟Data Science相关的内容作为主干课。除此之外还有几门以Data Science开头的课程,例如:

 

Introduction to Data Science——讲授Data Science是什么,能干什么

Data Analysis 

Data Mining

Big Data ——讲解怎么利用Hadoop,Spark等免费分布式系统并行处理大量的数据

Capstone——毕业实习或毕业程序设计

 

Data Science学术准备

 

1. 课程:

•统计理论

•数据挖掘/Machine Learning

•Optimization 

•数据可视化

 

2. 计算机/编程语言:

•R/SAS  

•数据库SQL 

•面向对象编程Python  

•大数据引擎MapReduce/Hadoop

 

热门数据科学硕士研究生项目

 

 

哥伦比亚大学

 

哥伦比亚大学的MS in Data Science 项目处于美国数据科学硕士申请难度的第一梯队。哥伦比亚大学有一个世界顶尖的大数据科学与工程研究室(Institute for Data Sciences and Engineering),学生在此参与实验与科研项目。该项目是2014年秋季新开设的,由此可见其对于这一专业的重视。

 

项目开设在工学院下,项目侧重数据挖掘、算法和统计建模(i.e., Algorithms for Data Science, Machine Learning for Data Science, Statistical Inference & Modeling),培养方案面向业界需求。该项目为期1年,学生共需修读30个学分,无需撰写毕业论文。该项目开设获得专业成就认证必需的四门基础课程,学生可以在此课程基础上将数据科学技术运用于各自的兴趣领域。

 

该项目要求申请者拥有一定的数学及编程基础,最好学过微积分、线性代数、计算机编程等课程,没有强制性的工作经验要求,有的话也会为申请者加分。需要递交GRE成绩,托福100、雅思7.0,不可使用GMAT代替GRE成绩。

 

项目的学生将有机会从事包括毕业项目在内的独创研究,并与行业合作伙伴以及教学人员沟通互动。毕业生可以选择金融等服务领域工作,也可以选择偏向技术的IT企业。

 

以下是主要课程:

 

其中作为必修的7门课重心都放在Computer Science 和 Statistics 两个方向,课程设置来看难度和含金量都是够的,Capstone Project也是给学生很好的实践和运用机会,加上哥大的常青藤光环和工程学院整体的教学质量和优势资源,整个项目的竞争力优势是非常大的。

 

申请要求:

 

和大多数DS项目一样,对申请者本身背景的CS和数学会有一定要求,基本的计算机语言和数学基础课程要满足。

 

 

杜克大学

 

杜克大学的Master in Interdisciplinary Data Science (MIDS)项目为期2年,该项目致力于培养一批能够使用计算策略来激发创新能力和洞察力,并且善于定量思考的新型领导者。旨在培养学生成为能给任何领域做出贡献的数据科学家,通过跨学科训练与团队合作科学实验的经验促进学生更好地利用数据的力量。项目规模不大,每年招收25-35名学生。

 

申请要求方面,不强制要求申请者有数学、计算机等专业背景,但是最好要学过微积分、线性代数、统计等数学方面的课程。需要递交GRE成绩,托福90,雅思7。毕业生去向良好,实习就业机会较多,从事的领域以计算机科学,金融,生物科学等领域居多。

 

 

宾夕法尼亚大学

 

 

宾夕法尼亚大学数据科学硕士项目为期一年半至两年,将有关机器学习、大数据分析与统计学等核心课题的前沿课程与多样化的选修课有机结合,给予学生选择在特定的目标专业领域内应用技能的机会。

 

项目包括基础课程及数据科学应用领域的实习。要求提供GRE,无最低分数要求。托福100,雅思7.5。毕业生就业形势良好,就业率较高,可以进入工程技术、咨询、决策等领域。

 

 

西北大学

 

西北大学分析学理学硕士项目(MSiA program)由西北大学工业工程与管理科学学院开设,为期15个月。该项目的核心课程由统计学、机器学习、优化、数据库、数据处理组成,每一门课都已之前的课程为基础,强调在商业实际中的学术研究。

 

申请要求方面,需要提供GRE分数,要求托福95,雅思7.5。适合本科工程、商学、计算机科学、数学、信息科学技术专业背景的人士。该项目面向商业,加上课程时间较短,有很多的实习机会,大部分学生毕业后选择直接工作,毕业生多进入金融领域。

 

 

康奈尔大学

 

康奈尔大学运筹学与信息工程硕士项目(数据分析方向)为期1年,共计30个学分,要求申请者拥有数学、工程、物理、化学、数学经济学等本科背景,且已经修读过微积分、概率论、统计、计算机编程、数据结构等课程。

 

每年招收50人左右,其中中国人大约30个。该项目选课自由度很大,并且有选CS系课程的优先级,无论你是想学CS,IS还是商科,金融,统计,统统都可以选。这种选课的自由度放眼全美也是十分罕见的。

 

申请者需要托福100(写作不低于20,听力不低于15,阅读不低于20,口语不低于22);雅思7;GRE数学不低于166,阅读不低于165,写作不低于3.5;不接受GMAT。毕业生2015年平均起薪达到83925美元,大部分学生进入苹果,微软,甲骨文,Facebook等互联网公司。

 

 

如何提升背景?

 

可能有的同学会问了,我本身背景不太强或者不太匹配,有什么办法可以使自己变得更有竞争力么? 

 

1.科研

 

科研的话,最好找和量化相关的,如果实在没有,可以把相关的课程大作业(project)拿来用。再退而求其次,也可以是 CS 相关,但切记没有科研经历,那将是极大地硬伤。

 

 

2.竞赛

 

竞赛的平台有很多,比如最近很火的Kaggle,再如阿里的天池、SODA、WID、数据嗨客等,都是一些平台的数据比赛。

 

3.实习

 

实习的话最优选择当然是数据公司的数据岗,然而现实是这样的岗位由于太过重要,基本不会招实习生。所以建议找一些统计量化相关的或者计算机相关的实习。

 

 

数据科学的职业方向

 

1机器学习工程师

(Machine Learning Engineer)

代表了技术含量较高的方向,工作内容主要是开发机器学习系统和用这些系统解决实际问题。一般需要ship production code,做出来的是数据产品。
 

2数据分析员

(Data Analyst)

工作内容俗称analytics (product analytics or business analytics),从数据中提取insight,估计投资回报比,为产品方向提建议,所用工具一般较基础,比如写SQL query取数据、用R/Python做简单的分析、用Tableau/Excel作图比较常见,能自己开发Dashboard算是analyst里面技术强的;工作需要产生各种形式的报告;在统计层次上,懂基本t-test和线性回归即可。
 

3数据科学家 

(Data Scientist)

 

很多人说,我想做数据科学家,我想做机器学习,而这类职位就是大家想象中的那种。
此类职位工作内容以高级建模为主,会针对复杂的问题来设计技术方案,比如Uber叫车的ETA、各种定价系统、Airbnb和金融行业的Fraud Detection、Amazon物流管理,FB/Linkedin的社交网络或者ebay/Airbnb/Uber这样供需双方Marketplace市场规模的实验。这些例子,听上去就不是写SQL能解决的,也不是会写代码就能做出来的,都需要比较深的领域知识。

 

4商业分析师

 (Business Analyst) 

 

算是数据分析师的一种,其职责主要包括收集、处理、执行、统计数据并进行分析、撰写商业分析报告、数据可视化、故事讲述。要求掌握Excel、PowerPoint、Python、SQL等,可能需要掌握可视化工具,比如Tableau。这类工作大多对企业的业务专业知识有较高要求。

 

择业时,有哪些公司可以选择?

 

各行各业都在利用大数据来解决问题,所以有很多公司有相关职位。

 

科技公司:Twitter,Microsoft,BAT,搜狗,美团,滴滴

金融公司:Capital One(从建立之初就开始用一些数据方法进行风险控制等方面的工作),高盛,Blackrock,Hedge Fund

咨询公司:Polunteer(帮助美国政府部门解决反恐、审查等工作),麦肯锡,IBM(传统咨询公司也慢慢转向 data 方向)

专门做数据分析平台的公司:Kotara,Hotten,Databreaks

其他公司:Horizon(电信),Comecrack(传媒),消费品公司,医疗公司

 

企业对于Data Science的需求

 

为什么要强调Data Wrangling呢?我们结合企业对Data Science人才的需求来看一下。

 

如果一个人有PHD头衔,是 Machine Learning专家,那么TA在公司里一般专门做Machine Learning算法,每天考虑各种参数、模型之类的事情。

 

然而真正做过相关的人会告诉你,这些Machine Learning的工作,80%的时间花费在Data Wrangling上。

 

所以现在很多公司喜欢招一些人专门完成这方面的数据预处理——对数据进行抽取,从复杂的数据里头抽取出所需部分来维护,然后把数据转换成进行Data Modeling能够用的数据。这部分工作非常有用的。

 

公司里不会雇一个本科生来做Machine Learning的。但用博士做Data Wrangling又太贵了。

 

本科毕业的话,可以完全可以胜Data Cleaning,Data Processing,以及一些简单的Data Analysis的工作。对于本科毕业就想开始做Data Science的人,Data Wrangling, Data Analysis是非常合适的一个方向。

 

哪些资料有助于我们的学习

 

01免费数据集

 

第一个推荐Kaggle,它是目前最大的数据科学家交流平台,现在属于google。

 

Kaggle提供了三个东西:

数据:大家在上面分享free,open,public的数据。

竞赛:很多公司会设立各种competition:设置一个目标,大家进行比赛,看谁的结果更好。

解决方案:很多人完成了数据分析,会愿意分享他们的解决方案,这部分叫做kernels。

 

Data Science,Machine Learning或者NLP能够蓬勃发展,都得益于计算机领域有一个非常好的习惯:Competition(竞赛)。

 

有人提供一个标准数据集;大家在上面尝试各种各样的方法;然来比较一下结果,看看谁的效果更好,谁的还可以改进。

 

Kaggle是这种传统,是一个专门针对Data Scientist,以促进Data Science发展为目标的平台。

 

第二个推荐KDD-CUP:Knowledge Discovery and Data Mining。

 

这个平台历史要更久一些,最早的一批用户是做数据库的。上面也会有一些有用的资源,包括数据,竞赛,工具介绍,方法分享等等,但整体比较偏数据库。

 

第三个推荐Kdnuggets。

 

这个网站偏重于Business Analytics,Big Data,Data Mining,Data Science 和Machine Learning。

 

Amazon的AWS也有免费公开的数据集,但是这些数据集一般都是大数据集了。

 

02在线教育资源

 

如果大家对网络课程有兴趣的话,推荐Coursera。上面有UIUC,UMichigan,John Hopkins University等大学的系列的课程。

 

UCSD有一个Big Data系列,个人非常推荐。

 

类似的课程平台还有Udemy。跟Coursera差不多,但是以单门课为主。不像Coursera常提供系列课程,让用户可以系统地上完四五门课,从而学习到一套比较完整的知识。Udemy需要自己再去找相关的课程来看。

 

还有一个平台是Datacamp专门提供Data Science课程。有视频,有hands-on编程,还有R,Python和 Statistics。

 

本科学历的同学,需要专门训练编程语言,要有一个非常拿手的tool,拿在手上干什么事儿都能磨刀霍霍的那种。

 

这种情况跟着Datacamp来做就非常好。上面课程的形式通常是讲解一段,再给出些实例,直接跟着照葫芦画瓢就能做。再深入一步的话,Datacamp要差一点了。