为什么数据科学那么火

 

近年来,各种新闻媒体上Data Science都作为搜索热词榜出现。在如今的大数据时代,每天都会产生大量的数据,我们想从数据里面取得insights,这就催生了Data Science行业。在大量数据产生的同时,数据存储,包括云端存储、移动硬盘等变得越来越廉价,数据的可利用率变高,云计算能力逐渐提高,不仅是手机和PC端,单机端和云端的计算能力也越来越廉价,使得普通人也能用到强大的计算。并且现在的算法越来越开源化,如Tensorflow等,越来越多的开源项目使得技术更加平民化

 

以上诸多的客观因素导致Data Science作为一个新兴领域越来越火热,也有越来越多的人进入这个领域。

 

数据科学在各个领域的应用

 

 

技术的支撑只是一方面,Data Science还有很大的市场需求,根据功能性来看,Data Science在诸多领域都有应用,它帮助了企业改变传统的拍脑子做决定的决策方法,现在越来越多公司都采取数据驱动的方式来做商业决策。

 

 

Data Science在不同的工业领域也有很多应用,比如疾病检测,现在可以根据大量患者和疾病的数据,使用大数据与Data Science的方法,帮助我们更高效地做病理推测与治疗方案采定,而不只是根据医生的经验和常规的检测手段进行诊断。其他的领域包括Consumer Financial、Retail等等,各行各业都想利用数据更好地做决策

 

举一个实际例子,信用卡公司想给用户发信用卡,他们就需要建模来帮助他们做决策,如根据用户的年龄、历史支付、拥有的credit种类,credit的利用率、最近是否申请了新信用卡等等计算出用户的信用评分,再根据信用评分最终决定是不是应该发给用户信用卡,这是典型的Data Science在Financial方面的应用。

 

数据科学的典型问题分类

 

我们可以把Data Science中的问题分为几大类:

  1. What’s the statistics。比如一组数据的平均数、最大值、最小值是多少,数据分布是怎样的,这类问题是很基础的Data Science问题。
  2. Is A better than B?这个非常常见,比如很多网站有自己的UI Design,他们有时候就要问,网站这个位置的颜色是用蓝色好还是绿色好呢,这就是Is A better than B问题。
  3. Is this A or B?例如,Facebook上每天都有大量新闻产生,那么我们如何智能地判断一个新闻是真的还是假的呢,这就是一个Is this A or B问题。
  4. How much?想研究一个变量,但是不知道这个变量应该被预测为多少,那么就需要问How much这个问题。
  5. 大量的数据中可能存在一个Pattern,想知道这个Pattern是什么我们就要问How is data organized
  6. What’s future?已知现有数据和历史数据,怎样预测未来的数据?
  7. Is this weird?已知一组数据,其中有几个数据与其他的数据不一样,那么这些数据不一样到什么程度才会被认为是weird的?
  8. What will users like?预测用户喜欢什么。

 

诸如此类,Data Science还有许多实际应用会解决的问题,那么Data Science为什么叫Data Science,为什么上升到Science的高度呢?就是因为我们能把现实生活中的各种问题归类,并针对每一类问题找到他们的Solution,对于以上我们提到的问题,我们都可以用Data Science的工具和方法去解决,具体的方法如下图所示。

 

数据科学家的基本技能及主要职能

 

 

什么是Data Scientist呢?Wills指出Data Scientist比软件工程师更擅长统计,而比统计学家更懂软件工程,其实对于Data Scientist的定义每个人给出的答案都不相同。Data Scientist需要掌握许多不同的技能,以上的韦恩图表示了Data Scientist的核心知识,主要分为三块,Computer Science,Math & Statistics,和Domain Expertise(你所处Data Science的具体的领域相关的知识),这三部分相交后也产生了一些更细分的领域,如果你这三部分的技能都掌握得非常好,那么你就一个Unicorn,是各大公司都想要的人才。

 

Data Scientist有哪些职责?这里列出了典型的几点职责:

 

 

首先,Data Scientist永远在问问题,他不仅要问我们要解决什么问题,还要问我们知道什么,我们不知道什么,我们想知道什么,要弄清楚数据到底包含了哪些信息,不包含哪些信息。为了寻找这些问题的答案,Data Scientist会提出假设,并利用数据来检验假设。然后会做数据的处理工作,包括Scrape, munge, clean data等等。然后还包括一些探索数据等具有创造性的工作,用数据进行建模,理解数据之间的关系。最后,通过前面的工作,构建Data Product,并做一些如产出报告等与Business相关的工作。

 

在这些工作职责中,很重要的一点是构建Data Product,什么是Data Product呢?就是以数据为核心的Product。这里列出了它的工作流程

 

 

首先我们要从不同的来源找到数据,清理数据(包括处理missing data, type casting等),再把处理好的数据在存储起来,然后还要做一些Analytics的工作,如找出数据中有没有一些patterns,features,解读数据包含的信息。

 

有了前面工作的基础,我们对数据就有了一定的把握,下一步就是Modeling和Reporting。建立了许多Model后,不仅可以帮助我们做Reporting,很多时候这些Model也会部署到我们的生产线里,同时还涉及到两个问题,一是可以把这些Model存储在哪里,二是这些Model怎样部署到我们的Application中去,解决这些问题后,我们就可以用Application处理新的输入数据,有了新的数据后,可以返回从头走一遍流程,帮助我们完善整个流程。

 

那么作为Data Scientist,他的工作流程是什么样的呢?

 

 

其实和刚刚讲到的Data Product是紧密相连的,首先确定目标并收集数据,从日志中载入数据,做Sanity check,看数据正不正确,有没有缺失值,数据中的敏感信息有没有被抹掉,然后做一些数据的探索与分析,然后把数据的Feature包装整合成能被Machine learning模型利用的Feature,选取Feature并构建模型,产生输出数据,通过输出的数据做模型评估,最终把结果可视化出来。

 

具体来看,Data Scientist需要六大技能。不同技能的组合也能做不同的事情,产生不同的商业价值。如下图所示:

 

 

例如,如果你精于Storytelling和Data Visualizaiton,你更擅长于Deliver Business Insights。如果我们把六大技能以这样的方式横向展现出来,可以发现,Data Scientist的技能是有一些侧重点的,越偏左的技能越偏Business而越偏右边的技能越偏Engineering

 

 

现在工业界更喜欢T-shaped skill set,如果Data Scientist对各个领域的知识有广泛的了解,同时又在一个小范围的领域有非常深入的了解,那这就是一般的大小公司希望找的Data Scientist。

 

数据科学家的求职指导

 

如何成为一个Data Scientist呢?给大家提出三点建议:

 

Master the fundamentals

掌握基础知识,主要侧重于数学和统计,具体来看,包括以下重点知识点:

 

 

Learn the tools of the trade.

尽力去学习现在比较流行的工具与语言,比如python和R这种有强大语言包的语言。这些语言与工具可以分为两大类:

 

 

一类是python,  R,  Julia这种比较High level的语言,好处是编写起来很快,容易上手,有强大的语言包,可以迅速实现一个模型去解决一个问题,很适合我们做Prototyping。同时,如果我们想把产品部署到生产线里去,那么就需要掌握Lower level的语言,比如Java, Scala, C++/Go。

 

有了通用语言以后,我们还得学Machine Learning与Software Engineer中的知识,重点的知识点如下图:

 

 

我们不需要学特别深的Machine Learning算法,但我们需要掌握一些非常基础与经典的模型,主要包括Regression, Classification等等,我们还要掌握怎样判断一个模型的好坏,以及不同模型之间的比较。在Software Engineer领域,算法、数据结构等是比较重要的。

 

Improve your own expertise.

有些人喜欢在简历里写自己的兴趣爱好与课余活动,其实这是体现Domain Expertise的一个方法。假如你是学机械或其他专业出身的,那么你就可以Improve your own expertise,成为Domain Expertise,这些与机械相关的课程与项目,就可以成为你步入机械行业的Data Scientis的切入点。

 

最后我们来看两个公司对Data Scientist技能要求的例子,大家可以看看这些Job Posting中所提到的核心技能自己是否满足,从而更有针对性地准备求职