太阁访谈 | 不再神秘,聊聊现实中的Data Scientist


(sonyzh) #1

Harvard Business Review曾经刊登过一篇文章,文章中把Data Scientist评为了21世纪最性感的工作(“the sexiest job of 21st century”)。在Google上随便一搜,首先跳出的就是五花八门的关于Data Scientist的培训课程,然后你还可以看到所谓的成为Data Scientist要具备的4种,8种,亦或是十几种技能。

![](data:image/svg+xml;utf8,)

这些纷繁复杂的信息不免为Data Scientist刷上了一层神秘的色彩。与此同时,也使人们对这个最近抄的火热的职业产生了一些误解。

![](data:image/svg+xml;utf8,)

和很多对Data行业感兴趣的朋友一样,小编心中对这个有点神秘的行业也有一些问题。带着这些问题,我采访到了现就职于美国硅谷一家知名科技公司的Data Scientist–Alex,来看看他是不是可以从他的视角为我们解析一下这个行业。

Alex背景:本科毕业于清华大学,从Carnegie Mellon University获得博士学位。

![](data:image/svg+xml;utf8,)

小编:可以先大概介绍一下你是怎么进入数据这一行,开始做Data Scientist的吗?

Alex:其实一开始是想做Software Engineer的,因为刚毕业的时候很多同学都走了这条路。但是在工作申请的过程中,发现软件工程师的门槛越来越高,那时候Leetcode已经300多道题了,而且自己的优势也不在这里。从我个人来说,我在读博的时候主要积累的是分析能力和实际的machine learning经验,而并没很丰富的码代码的经验。这样看来,做数据科学似乎是一个不错的选择。

小编:能不能先大概介绍一下你每天的工作呢?

Alex:简短的说,就是确定一个问题,收集一些数据,然后利用machine learning工具得出一些insights,然后把它们present出来,为公司的决策提供一些建议。

小编:那你在一开始是如何确定解决什么问题呢?

Alex:我个人感觉提出好的问题其实是最重要的一步。一般来说,公司会有很多悬而未决的问题,他们有些看起来很有趣,而有些会很神秘,还有些会有点枯燥。而这些都不是选择问题需要考虑的主要因素。我一般会通过衡量解决这个问题所能带来的impact来决定是否投入时间和精力来解决这个问题。

我刚才所指的“问题”其实有两层含义:一个是从公司角度来看的问题,另一个是从机器学习角度来看的问题。一般刚走出学校的学生会比较关注后一个问题,但从公司的角度看问题也很关键,因为它决定了你是否能够很容易向你的同事sell你的idea。

小编:在决定需要解决的问题后,下一步要做什么了呢?

Alex:这一步往往是Data Scientist和其他的职位开始不一样的地方。Data Scientist强调要用数据说话,所用的往往也都是data-driven method。比如说,我们会用数据train一个decision tree model来做prediction。可能有些人会觉得data-driven method就是完全取决于data,这样的理解是有偏颇的,domain knowledge和experience也是很重要的因素。其实在项目的一开始,会有各种各样的feature candidate,而如果采取一网打尽式的数据收集,会造成很大的overhead。这个时候可能就会感觉有点迷茫,如果有无从下手的感觉,我通常会和了解这个问题的同事沟通,通过他们的input来明白哪些feature比较重要,哪些feature是potentially重要的,哪些feature可有可无。然后根据这些feature去收集数据。

小编:那是不是这些feature收集的越多越好呢?

Alex:理论上来说,这些feature是收集的越多越好。但是在实际项目中收集每一个新feature都是需要一定的代码量的,所以在feature数量和时间上要有一定的取舍。一个不完美的完成的项目总是好于一个完美的没有完成的项目。

小编:实际中收集到的数据都有什么特点呢?

Alex:以我接触到的数据为例,它们往往都是来自一些log file,也就是说并不是structure的。这些数据都需要一些预处理(比如string matching)来提取关键数据。有时候也会涉及到多个数据集,这时就需要通过一些逻辑把这些数据集整合起来。最终可以把它们规范成一种机器学习可以接受的input。

![](data:image/svg+xml;utf8,)

小编:机器学习算法中有很多模型,你是怎么选择的呢?

Alex:关于各种模型的performance比较,网上可以找到很多的资料,这里我就不赘述了。而实际中模型的选择一般有两个维度的考虑:一个维度是模型的performance,另一个维度是模型的可解释性。在学校中我们一般只关注模型performance这个维度,但是在实际工作中,模型的可解释性往往也很重要。举个例子,如果你要想向一个完全没有机器学习背景的软件工程师解释你的数据,那么deep learning可能就不是最优的选择。为什么?因为不intuitive,或者说他很难获得神经网络的intuition。如果他不能follow你的model,他会很难相信你。这种情况下,decision tree可能就会好很多。当然,具体情况要具体分析,有一些公司(比如F)就明确的提到过只care performance,不需要考虑模型的可解释性。

小编:Data Scientist需要掌握什么语言呢?

Alex:主要是Python和R。在data collection和processing的时候一般用Python,Python的字符处理很强大。在机器学习的这一步R和Python都可以用,有很多现成的软件包可以在网上找到。

作者:Qin Elaine
链接:访谈·不再神秘,聊聊现实中的Data Scientist - 北美留学君—DATAOFFERS小牛将 - 知乎专栏
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

小编:除了上面两种语言,能不能介绍一下Data Scientist工作中常用的技术栈呢?

Alex:除了Python和R,常用的技术还有SQL,DeepLearningToolbox等。其实现在基本上不需要自己实现machine learning的算法,各种语言都有比较完备的toolbox,但是如果要是想让这些toolbox发挥最大的效果,就要对这些machine learning有一定的了解。这里说“一定的了解”并不是指能够对每一种model进行数学推导,而是说要了解模型的基本假设和参数的意义。只有了解了这些,才能够知道怎样调整模型的参数来提高performance。例如,在使用Naive Bayes分类器的时候,如果对两个类的distribution有一些先验的信息,就可以定义一个相应的prior distribution,从而提高模型的准确性。

小编:你在工作中是不是也在继续不断的学习新技能,提高自己呢?是通过什么途径,有哪些资源可以推荐吗?

Alex:我觉得对自己的再学习主要通过两个方面:一方面是工作领域的背景知识,这些主要通过日常的和同事交流来学习;另一方面是了解一些数据科学的知识。现在有一些不错的网络课程,都是大家自我提升的不错的方法。比如BitTiger的课程,还有类似于MIT,Standford等提供的网课。

![](data:image/svg+xml;utf8,)

学习如何设计Uber实时车辆管理监控系统

Smart Zillow全栈房价跟踪预测系统是如何设计与实现的?免费试听。

本文作者:Elaine

更多精彩,尽在硅谷高端线上教育社区BitTiger:请猛戳我

公众号:论码农的自我修养

知乎专栏:太阁实验室

微博:@太阁BitTiger

今日头条:太阁BitTiger