登录
首页如何成为一名数据科学家 | 面试篇(附视频中字)
如何成为一名数据科学家 | 面试篇(附视频中字)
2017-10-01
收藏

如何成为一名数据科学家 | 面试篇(附视频中字)

数据科学家是21世纪最性感的职业,在本文中我们将解答如何找一份适合自己的数据科学工作。

后台回复"数据科学家"获得讲座完整PDF

在上一篇给大家带来了HackerEarth的主题演讲如何成为一名数据科学家之学习篇。在这里我们带来了面试篇。

在本篇中Jesse steinweg - woods主要围绕了以下问题:

· 如何获得面试机会

· 面试中的小技巧

· 关于数据科学的常见误区

· 观众提问

关于主讲人

Jesse steinweg - woods是Tronc的一名资深数据科学家,主攻文章的推荐系统和理解客户行为。此前,他在Argo Group Insurance工作,主要利用机器学习技术采用了新的定价模型。他在德克萨斯A&M大学获得了大气科学博士学位,他的研究领域是数值天气和气候预测。

CDA字幕组该讲座视频进行了汉化,附有中文字幕的视频如下:

针对不方面开视频的小伙伴,CDA字幕组也贴心的整理了文字版本如下:

(文末有彩蛋! )

关于面试

首先你需要弄清楚,我该怎么获得面试机会。当中的最好办法就是进行数据科学。

Pet Project

看书是一回事,但实际上手操作就是另一回事了。因为你会遇到问题和障碍,你需要学习新的东西,需要改变你的假设并提出新的问题。这是一个非常反复的过程,但是不错的练习。

Monaca Rogati对数据科学有很多感触,她是LinkedIn的一名出色的大数据科学家。她对这个问题的解答我很赞同。

进行一个你感兴趣的项目,用心的完成并分享它。

当我找工作时,我也试着这么做了。因为这向他人证明,你真的对数据科学家感兴趣。你愿意用自己的时间,按自己的节奏做这个项目,而不是为了完成课程任务。这能够让你练习如何与他人沟通,如何回答问题。

我做过以下项目:

对Indeed中的关键数据科学工作技能进行web搜索

因此我必须弄清楚如何进行web搜索,这是我之前不知道的。但对于数据科学家来说这是非常有用的工具。对我而言这是一个非常有价值的学习过程,我可以记录我的工作、分享我的成果。

实际上当这篇文章发布在我的网站上时,在24小时内点击量达6500。而且Indeed也对我这篇文章有兴趣,并联系我进行面试。事实上这是我第一个数据科学面试就是与Indeed。当时我不太了解数据科学的面试过程,所以做的不是很好,但是是宝贵的学习体验。

关于Kaggle

很多人认为练习数据科学的好方法之一是参加kaggle比赛。一定程度上我是同意的。

但那是针对机器学习,这并不包括全部的数据科学。这是数据科学非常小的一部分。

Kaggle忽略了一些问题,比如问合适的提问。以及如何回答问题,开发模型时你想使用什么数据源。以及优化时你需要哪些指标,参与到数据集所包含的步骤等等。

首先在现实中数据并不是像Kaggle中那样干净整洁。你需要做大量的工作。

我会在kaggle上关注一些机器学习相关的实践,他们使用了很多很棒的工具。但仅仅做kaggle很不够,我认为pet project能够让你进步更多。

而且这些kaggle比赛非常耗时,你可能不会与经验丰富并且有充分时间,在比赛中求胜心切的人竞争。因此存在一定风险。

如果你成为出色的kaggler会获得公司的关注,但不像pet project那样保险,因此建议进行pet project。

找什么工作

这是很难的,而且变得更加困难。

因为有时公司自己也不明白究竟数据科学是什么。

udacity的图说明了一定问题。当看到工作招聘时,一般都归结于这四个类别。

你可以看到工作类型所需要的技能。因此你需要自己决定,你对什么样的工作感兴趣,哪些技能符合这项工作。

例如,数据科学家是住在旧金山的数据分析师。可以看到软件工程不是很重要,统计数据有些重要的,但最重要的是数据可视化和沟通。

对我来说这只是数据分析的工作,而不是数据科学家的工作。数据分析师的工作往往更专注于可视化和沟通。比起数据科学家,这可能是更类似数据工程师的职位。因为这更注重数据再加工,更侧重软件工程,他们更关注构建管道。

许多创业公司会说,他们需要数据科学家。但之后问他们“你们希望数据科学家做些什么?”他们会说:“我们还没有很好的数据。我们需要有人建立获取数据的管道。并以容易访问的形式存储该数据,确保该进程顺利运行”。但是这是数据工程师所做的,他们要求的是两码事。

应聘初创公司的数据科学职位时,确保他们真的知道他们想要什么。

我们是数据,数据是我们。指时刻都需要使用数据的公司。比如Facebook Netflix以及亚马逊。他们需要数据科学家,更专注于生产产品。

我不同意这个图表中说的软件工程并不重要,我认为这非常重要。

最后是具有一定规模,由数据驱动的非数据公司。这些公司更多的雇用这种数据科学家,能够解答困难的问题,这些技能能具有应用性。

调查团队

团队倾向于雇佣类似他们的人。

这际上我的团队也是如此。我的团队有三个人,都为博士学历,都从事物理领域。我的情况是应用物理或者应用数学。我们三个人均使用Python,因此我和我的团队很合拍。

人们往往有一些招聘上的倾向。团队中如果没有博士,那么他们不会招博士生。如果团队中每个人都有博士学历,那么你很可能也需要。

他们是否大多是计算机科学家,是否大多数是物理科学家,是否大多数是社会科学家,他们倾向于使用Python还是其他语言。

因此我会调查可能一起工作的团队成员的情况,然后判断自己是否适合这个团队。我希望在招聘中有时能够更多样性,但事实就是这样。

联系团队负责人

还有方法是去联系团队的主管。试着在LinkedIn或什么地方找到邮件地址,去联系他们。介绍你自己,表达你的兴趣,展现自己做的pet project。这能够让你的简历脱颖而出,这并不总奏效,但有一定帮助。

参加活动

参加聚会活动在美国很重要。在这里你可以与其他数据科学家交流。这能在找工作上有所帮助,你可以学习新的东西。因此我建议你参加,能够帮助你建立人脉和帮助工作。

大量的面试

找到合适的工作需要时间。

因为所有职位,所有的公司可能略微不同。公司的要求和团队组成可能略微不同。因此这需要很多时间。

这是一个耗时的过程,你必须保持耐心。

面试技巧

这些是我整理的基本面试技巧,有五个关键问题。

回家完成的机器学习任务

给你数据集,你必须进行调查并解答问题。构建机器学习模型,然后提交结果。

白板编程

在白板或者协作屏幕前回答问题。这与软件工程面试有所不同,比起其他内容我会更专注数据结构和规律。

白板SQL

检测你是否会使用SQL进行查询,如果你曾练习过就不会太难。

贝叶斯定理概率问题

有时会有这些问题,你只需要熟悉贝叶斯法则。

机器学习估值指标

这很重要,因为如果你不知道怎么正确的操作,你就不会知道你的模型的实际效果,并可能导致很多问题。

额外的技巧

回家完成的机器学习问题

我会关注树状模型方法,即随机森林或者梯度提升决策树。你不会有很多的时间完成,比如在12点发给你,你必须在4点前完成。你不会有许多时间来测试大量不同的模型,以及准备数据。

白板编程

类似软件工程面试,但更注重数据结构和算法。这里有一些可参考的资源:书《破解编程面试手册》;网站 interview cake hacker rank;projecteuler也是不错的选择。

白板SQL

如果你常用SQL,这些很简单。SQL Zoo很适合进行练习,在上面进行一些实际练习,你就没问题了。

贝叶斯定理

需要记住公式。在Glassdoor上有一些有帮助的样本问题。比如得癌症或者下雨的概率。好好研究这个公式并多练习。

机器学习估值指标

这是特征曲线(ROC curve)的例子。掌握它的含义,怎么做交叉验证。充分理解这些概念。

暂时不需要关注的问题

深度学习

很多人认为你马上需要掌握深度学习,但你并不需要。除非你工作的公司需要处理大量图片、声音信息。

Spark和Hadoop

人们喜欢谈论这个,这有些夸张了,遗憾的是现在很多公司并没有必要的规模。一些公司例外。

推荐系统

这是我在工作中将用到的。大多数公司其实并不需要这个。因此你只需要了解这是什么,并不需要知道如何从头构建。

高级自然语言处理

你不需要详细的掌握,但要掌握基本知识。因此你能够使用文本数据,构建简单的模型。这基本上是你第一份工作中所需要的。

关于数据科学的误区

下面我想谈谈关于数据科学的常见误区。

误区一

数据科学是对模型进行微调以尽量达到最佳性能。

在kaggle上也许如此。现实的情况是绝大多数情况下,你会花大部分的时间清洗、合并数据集。你基本上就像一个数据清洁工。

这是非常重要的一步。如果你要生成模型,当中若有大量缺失、混乱的值,你的模型不会良好的运行。所以该步骤很重要,不要小看它。这也会成为你工作的很大一部分。如果你不喜欢这个过程,那么数据科学可能不适合你。但之后得到回报是完全值得的。

误区二

大数据无处不在,需要使用Hadoop和Spark来解决每个问题。

上周的一篇报告表明,Hadoop的热度开始下降。因为很多公司开始意识到他们并不需要Hadoop,大多数问题其实是可以用单一的机器处理。

一开始许多公司公司看到Hadoop和Spark这种高大上的工具觉得“天啊,我们需要用这个工具。”但在事实中他们实际上没有那么多的数据。

这可能会随时间而改变,但是我现在想说的是,一开始你可以并不需要使用Hadoop和Spark处理问题。但也存在例外。

误区三

深度学习能解决一切问题,其他方法都是过时的,没必要使用其他方法。

现实是,也许你并不需要它。除非你需要处理图像,提高性能等。

比如对许多图片进行分类。如果你在一家服装公司工作,你想让计算机自动识别这是红色裙子,或属于某个品牌之类的,那么深度学习对你是很有帮助的。

但如果是处理流失模型,或者试图了解客户如何与某种数据的互动,并没有涉及图像。深度学习不会是你的解决方案。因此你可以暂时避免学习太多深度学习的内容

观众提问

问题1

一名大学生小白该如何成为数据科学家?可以做些什么项目?应该关注什么技能?该如何找工作?

这些我之前讲的基本都囊括了,要补充的一点是找一份实习工作。

我认为实习真的很重要,无需过多的强调。试着找找科学数据或者数据分析的实习,工作经验真的很重要。实习结束的时候,你会有收获的实习经验。这会让你找工作更加容易。

问题2

一个有其他领域经验的人如何进行转行到数据科学?例如有三年的Java经验,现在想成为数据科学家;或者掌握Hive、Pig、Flume、Hadoop

听起来这个人有软件工程或数据工程师背景。我认为有编程经验很好。但还需要学习很多关于统计的机器学习知识。

kaggle是不错的开始。你已经有很多技能了,但是你需要补充一些空白。比如数学、统计、机器学习以及可视化。

同时掌握如何解决问题,沟通同样也很重要。

当刚成为数据科学家时,我低估了沟通的重要性。这很重要,你需要跟很多不同的利益相关者沟通。

问题3

机器学习工程师与数据科学家有什么区别?

有点难说,因为数据科学家是一个总称词。基本上混合了统计、计算机科学以及数学。机器学习工程师绝对包含在内。

但我觉得机器学习工程师更注重把成果做出产品,他们就不太专注于回答商业中的问题,他们不太关注探索性数据分析,不太关注销量指标。他们更专注于做出产品。例如推荐系统或为用户进行图像分类等。

问题4

统计学家与数据科学家有什么区别?

是一个棘手的问题,存在很多争论。

我得出的结论是:统计学家往往不具备太多的编程经验,他们更专注于推理,得出结论,理解不确定性,置信区间之类的问题。

而在数据科学家更专注于进行预测,构建能够自动完成上述内容的产品。因此两者的关注点不太相同。

问题5

数据工程师与数据科学家有什么区别?

可以把数据工程师理解为是管道工。他们复杂建管道,如果你要建一个喷泉。你需要人建管道,把水从水源一直运到喷泉。

数据科学家再从那里接手,他们处理水如何从管道出来,喷泉的外形,会定期喷水还是有好的喷水效果等等。

工程师关注于数据的骨干结构,数据是如何被处理的。

数据科学家对数据做些有意思的事情。比如初始化 生成模型、生成产品、推荐系统等等。但没有工程师的帮助无法完成这些。

问题6

数据科学与机器学习的关系是什么?

我认为机器学习是数据科学家的工具箱中的一个重要工具,但不是唯一的。

许多数据科学工作侧重于预测,但一些数据科学的工作更侧重于推理。这仅取决于你对数据科学的个人定义,以及你被要求做的工作。我认为这是数据科学的重要组成部分,但不是全部。

问题7

目前行业中最通用的机器学习算法是什么?

在Kaggle能够很好的理解这点,因为算法往往随着时间而改变。以前最流行的算法是随机森林,然后出现了Adaboost等等。接着有了一些计算的进步以及如何应用到深度学习中。如今深度学习变得更受欢迎。

但主要取决于问题,我不会太关注与使用什么算法。首先应该理解你需要解决的问题,你可以之后再关注模型。因为测试各种不同的模型,看看它们的性能,然后选择最佳的这样更容易。

问题8

数据科学家的工作的前景怎么样?五到十年之后还会存在吗?或者被自动化?

这取决于你作为数据科学家在从事的工作内容。

如果你进行非常基本的数据调查,处理并不是很复杂查询。如果你只是在做业务报告 这很可能很容易被自动化。

但如果你真正在分析公司的问题,设计的机器学习模型,或其他专门针对客户、公司需求的产品。那么是很难被自动化的。

CDA字幕组召集令

CDA数据分析师旗下的CDA字幕组开始招募啦!

我们发掘了一批优质的数据分析视频,只要你有责任心有时间,有一定的英文翻译、听译能力,最重要的是热爱数据分析,那么就来加入我们吧!

申请报名

点击「阅读原文」或扫描下方二维码:

数据分析咨询请扫描二维码

上一篇
下一篇
客服在线
立即咨询