推荐 :数据科学与大数据技术面试建议与技巧

百家 作者:数据分析 2018-09-25 03:54:09

如果他们询问装袋或提升或A / B测试怎么办?

SQL或Apache Spark或最大可能性估计怎么样?


顺利通过数据科学专业的面试并不容易。如果你在面试时遇到了类似上面这样的问题,你只有依靠经验,否则没有任何灵丹妙药可以帮助你做足准备来迎接你所面临的众多问题。但经过面试了大量的求职者,我可以分享一些见解,使你的面试更顺畅,想法更清晰,更简洁,这可以帮助你在日益庞大的求职者群体中脱颖而出。以下是一些面试技巧:


          建议与技巧         

1.使用具体示例

2.知道如何回答模棱两可的问题

3.在准确性、速度与可解释性中选择出最佳算法

4.画图

5.不要使用你不确定的术语或概念

6.不要期望知道一切

7.认识到面试是一场对话,而不是一项测试




1.使用具体示例


这是一个简单的方法,可以将一个复杂的想法用易于理解和易于掌握的方式表达出来。但这也是个容易让许多受访者误入歧途的方式,不小心就会导致漫长、漫无目的、无意义的解释。 我们来看一个例子:


面试官:讲讲什么是K-means聚类


典型回答:

K-means聚类算法是一种可以将数据分组的机器学习算法。它是无监督的,因为数据没有标记,因此我们试图从数据中提取出潜在结构。(在白板上绘制图像)


它的运作方式很简单。首先,初始化一些质心,然后计算每个数据点到每个质心的距离,将每个数据点都分配到离它最近的质心,一旦分配完所有数据点,就将质心移动到其组内所有数据点的平均位置,重复此过程,直到质点所分配到的数据点不再发生变化。


这有什么不对呢?


从表面上看,这个解释没什么不对,但从面试官的角度来看,这种解释存在几个问题。第一,你没有提供上下文,讲的是一般性和抽象性,这导致你的解释更加难懂。第二,虽然白板绘图很有用,但你没有解释轴,如何选择质心数,如何初始化等等,这导致你的解释不够全面。


更好的回答:


K-means聚类算法是一种可将数据分组的机器学习算法。它是无监督的,因为数据没有标记,换句话说,它没有任何基本事实可言,因此我们试图从数据中提取出潜在结构。


让我举一个例子。假如我们是一家广告公司,到目前为止,我们一直向给定网站的所有访问者展示相同的在线广告,但如果我们能找到一种方法对访问者进行细分以向他们发送有针对性的广告的话,我们就能更加高效。能达到这一目的的方法就是聚类。现在我们已经有办法收集访问者的收入和年龄。(在白板上绘制图像)


在这种情况下,x轴是年龄,y轴是收入,这是一个简单的2D案例,因此我们可以轻松地将数据可视化,这有助于我们选择集群的数量(即K-means中的“K”),此时看起来有两个集群,所以我们用K = 2初始化算法。如果视觉上看不清楚有多少K可以选择,或者如果我们在更高维度上,我们可以用惯性或轮廓分数来帮助我们找到最优的K值。在这个例子中,我们将随机地初始化两个质心,尽管我们也可以选择K ++初始化。


计算每个数据点到每个质心的距离,并将每个数据点分配给其最近的质心,一旦分配完所有数据点,就将质心移动到其组内所有数据点的平均位置,这就是左上图所示的内容,你可以看到质心的初始位置和箭头显示它移动到哪里。然后再次计算到质心的距离,重新分配数据点,并更新质心位置,这就是右上图所示的内容。这个过程重复进行,直到没有点改变组,最终的输出结果显示在左下方的图表中。现在我们对观众进行了细分,这样我们就可以向他们展示有针对性的广告。


因此在面试中要用有趣的示例来解释每个概念。它可能类似于上面的集群示例,也可能与决策树的工作方式有关,你要保证你使用的例子是真实的,这个例子不仅表明你知道算法是如何工作的,而且表明你至少知道一个用例,并且你可以有效地传达你的想法,没有人愿意听到一般性的解释,这很无聊,会把你划分为平庸之辈。


2.知道如何回答模棱两可的问题


从面试官的角度来看,这是一些最令人兴奋的问题。例如:


面试官:如何处理分类问题?


在成为面试官之前,我认为并不会遇到这些问题,但现在我已经面试了许多申请人,我看到了这类问题的价值,它们能展示出面试者的几个方面:


(1)他们如何做出反应

(2)他们是否会提出探究性问题

(3)他们如何解决问题


让我们看一个具体的例子:


面试官:我想对贷款违约进行分类。我应该使用哪种机器学习算法?为什么?


诚然,这个问题没有提供多少信息,这通常是设计好的,所以问一些试探性的问题是很有意义的。对话可能是这样的:


我:请告诉我有关数据的更多信息。具体来说,要包含哪些特性以及有多少观察结果?

面试官:特性包括收入、债务、账户数量、未付款数量以及信用记录的长度。这是一个大数据集,因为有超过1亿的客户。

我:明白了,就是相对来说特性很少但数据很多。有什么我应该注意的限制吗?

面试官:我不确定你的意思,比如什么呢?

我:我们关注的是什么指标?您关心的是精确度,精确度,回忆率,类概率还是其他的东西?

面试官:这是个很好的问题。我们想知道的是知道某人拖欠贷款的概率。

我:好的,这很有帮助。关于模型的可解释性或模型的速度有什么限制吗?

面试官:实际上都有限制。由于我们在高度监管的行业中工作,因此该模型必须具有高度可解释性。此外,客户在网上申请贷款,我们要保证在几秒钟内回复。

我:我来确认一下。我们只有几个要包含的特性和大量的记录。此外,我们的模型必须输出类的概率,必须快速运行,而且必须具有高度的解释性。对吗?

面试官:对。

我:基于这些信息,我建议使用Logistic回归模型。它输出类概率,以便我们可以检查该框。此外,它是一个线性模型,因此它比许多其他模型运行得更快,并且它产生的系数相对容易解释。


这里的要点是要提出足够尖锐的问题,以获得做出明智决定所需的必要信息。对话可能有很多不同的方式,但不要犹豫,提出澄清的问题,习惯它,因为当你在野外作为DS工作时,这是你每天都要做的事情!


3.在准确性、速度与可解释性中选择出最佳算法


我在2点技巧中简单介绍了这一点,但是当有人问你使用一种算法而不是另一种算法的优点时,答案几乎总是归结为3个特征中的哪一个或两个——准确性或速度或可解释性。但请注意,除非你有一些小问题,否则通常不可能同时兼顾这3个特征。某些情况会倾向于准确性而非可解释性,例如,在某个问题上,一个深层神经网络可能胜过决策树,反之亦然(见“没有免费午餐定理”)。在某些情况下,尤其是在受到高度监管的行业,如保险业和金融业,通常优先考虑可解释性,在这种情况下,为一个易于解释的模型放弃一些精确度是完全可以接受的。当然,在某些情况下,速度也是最重要的。


因此当你回答关于使用哪种算法的问题时,请考虑特定模型在准确性、速度和可解释性方面的含义,围绕这三个特性来决定你要使用哪种算法。


4.画  图



这一点的重要性不言而喻。大多数面试者都能很好地利用白板或纸,但偶尔我也会面试到那些试图用语言解释一切的人,这让我感觉很糟糕。正如有句古话,“一张图片胜过千言万语”。运用画图的方式可以把一个5分钟的漫无边际的解释变成一个10秒的画图和一个30秒的解释。记住,白板是你的朋友。使用它!


画图的时候要记住以下几点


  (1)标记轴

  (2)解释轴

  (3)坚持2D

  (4)使用不同的形状来表示不同的类或集群(例如,用三角形表示0类;用圆圈表示第1类)

  (5)如果可能的话,使用不同的颜色进行分类或聚类

  (6)当你在做的时候,说出你正在做的事情


5.不要使用你不确定的术语或概念


这是最容易毁掉一场面试的方式。假如你在解释梯度下降(GD)是如何工作的,事情是如何顺利进行的,所以当你描述GD和正则化的时候,你决定提一下Elastic Net,尽管你对Elastic Net是如何工作的或者它到底是什么并不是很清楚。但一切都很顺利,你想表现出来你有多聪明,你可以把这个塞进去,觉得没有人会注意到,对吧?问题是,你没有注意到面试官明显地觉得你不知道这个术语。当你说出“Elastic Net”这个词时,你的声音会颤抖,你的脸会扭曲,你可能感觉不到,但我感觉得到。所以会发生什么呢?你一说完话,我就毫不费力地揭露了你的弱点,这样就把你的解释一个一个地拆解了。


我是个混蛋吗?有些人可能这么认为。但请考虑一下:如果我雇用你,你可能需要为硬核技术人员或C级管理人员维护模型或平台,试想一下,如果你还是使用同样的花招,事情本来进展得很顺利,你在解释你的模型的优点,然后你简单略过了这个你还没有完全掌握的术语,一旦你无法解释这个术语,你就会失去所有可信度,你的模型或平台已经过时了。在这种情况下,要淘汰你的不是我,而是上层技术人员或管理人员。所以你需要通过展示真正的知识来培养可信度。


6.不要期望知道一切


在我看来,一个好的技术面试是我作为面试官能够发现你知识的局限。你最好相信我会找到你的知识局限。有时只需要2-3个问题就能找到一个人的局限,有时需要深入钻研某个深奥的边缘案例,即10个问题的深度。有时候,我甚至会问一些我不知道答案的问题,但我可以遵循你的逻辑,研究你的肢体语言,另外,我还可以在以后查看答案来检验我的直觉。


需要注意的是,如果你因为不能回答所有问题而情绪低落,那么你应该重新考虑你的期望值。一个好的面试官肯定会提问超出你的知识范围的问题。但你是不是会把注意力集中在你错了的问题上而漏掉一堆简单的问题?那就看你了。你有没有漏掉一个关于使用OVA二项式和多项式逻辑回归的优缺点的问题?不过也许没什么大不了的,虽然你被淘汰了,但你知道你还有新的知识要学习。


7.认识到面试是一场对话,而不是一项测试


大多数人在参加技术面试时都认为他们所要做的就是正确地回答所有的问题,然后他们就可以回家了。不!即使你奇迹般地做到了这一点(见技巧6),面试官看到的也不仅仅是你的技术知识。面试官很有可能是你的老板或同事,这意味着你们会花很多时间在一起,这也意味着你正在接受适合性评估。也许你精力旺盛,但这群人大多性格内向,那你将会成为干扰动力,所以你是不可能入选的。还可能面试官是那种“永远正确”的人,不能容忍挑战,即使是有道理的挑战,也许你的性格与此冲突。这都有可能发生,你最好尽早发现这一点。


所以,即使你熟练掌握了前6条技巧,但我现在也要告诉你你可能根本没有希望。关键是面试是双向的。就算你拥有所有的技术技能,你还会因为一些严重或愚蠢的原因而被淘汰吗?答案是肯定的。但事实是你拥有同等的权力。你应该把面试当成一场对话,而不是一场测试,你面试这家雇主的次数和他们面试你的次数一样多。如果面试官是一个混蛋或者自我意识很强,或者你看到了其他危险信号,你应该退后一步,认真考虑一下你是否真的想在那里工作。


我知道你可能已经失业了很久,并且这份工作的薪水很不错,它似乎是你最好的选择。但你要认真考虑一下,假如坐在你桌子对面的老板是个混蛋,你虽然有工资,但是你要全职工作,感觉很痛苦,还要在所有这一切之外再找工作,这可不是个容易的事情。总之,留意这些危险信号,问问你自己,并做出明智的选择。当你找到合适的工作和合适的公司文化时,你会马上知道的。


总结:

掌握强大的技术技能会让你在很多行业都走得很远,但在数据科学领域你可能会两手空空。以下是一些可以帮助你在面试人群中脱颖而出的方法:


1.使用具体示例

2.知道如何回答模棱两可的问题

3.在准确性、速度与可解释性中选择出最佳算法

4.画图

5.不要使用你不确定的术语或概念

6.不要期望知道一切

7.认识到面试是一场对话,而不是一项测试

本文由张晨、朝乐门负责翻译、编辑、排版和校对。

原文标题:How To Ace The Data Science Interview;原文作者:David Ziganto

原文URL:https://dziganto.github.io/data%20science/interview/How-To-Ace-The-Data-Science-Interview/)

转自:数据科学DataScience 公众号;

END

版权声明:本号内容部分来自互联网,转载请注明原文链接和作者,如有侵权或出处有误请和我们联系。


关联阅读:

原创系列文章:

1:从0开始搭建自己的数据运营指标体系(概括篇)

2 :从0开始搭建自己的数据运营指标体系(定位篇)

3 :从0开始搭建自己的数据运营体系(业务理解篇)

4 :数据指标的构建流程与逻辑

5 :系列 :从数据指标到数据运营指标体系

6:   实战 :为自己的公号搭建一个数据运营指标体系

7:  从0开始搭建自己的数据运营指标体系(运营活动分析)

数据运营 关联文章阅读:  

运营入门,从0到1搭建数据分析知识体系    

推荐 :数据分析师与运营协作的9个好习惯

干货 :手把手教你搭建数据化用户运营体系

推荐 :最用心的运营数据指标解读

干货 : 如何构建数据运营指标体系

从零开始,构建数据化运营体系

干货 :解读产品、运营和数据三个基友关系

干货 :从0到1搭建数据运营体系

数据分析、数据产品 关联文章阅读:

干货 :数据分析团队的搭建和思考

关于用户画像那些事,看这一文章就够了

数据分析师必需具备的10种分析思维。

如何构建大数据层级体系,看这一文章就够了

干货 : 聚焦于用户行为分析的数据产品

如何构建大数据层级体系,看这一文章就够了

80%的运营注定了打杂?因为你没有搭建出一套有效的用户运营体系

从底层到应用,那些数据人的必备技能

读懂用户运营体系:用户分层和分群

做运营必须掌握的数据分析思维,你还敢说不会做数据

合作请加qq:365242293  


更多相关知识请回复:“ 月光宝盒 ”;

数据分析(ID : ecshujufenxi )互联网科技与数据圈自己的微信,也是WeMedia自媒体联盟成员之一,WeMedia联盟覆盖5000万人群。

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接