数据科学面试Case Study问题的回答技巧

数据科学面试Case Study问题的回答技巧

在过去,我们探讨过数据科学中的机器学习,统计学和概率论。本文,我们将讨论案例研究(Case Study)问题的准备工作。

在数据科学的面试过程中,有时面试官会提出一系列商业问题,并讨论怎样用数据科学技术提供潜在的解决方案。这是数据科学面试中典型的案例研究问题。根据应聘者的表现,面试官可以全面了解应聘者的批判性思维,商业头脑,对模糊的业务问题的解决能力,以及数据科学模型和基础知识的实际使用能力。不同的是,这里提出的大多数问题都是开放式问题,没有一个正确的答案。

所以,了解回答问题的模式,并构建你的答案,是很有用的。本文会谈到一些面试前和面试中策略,它们能帮助你更好地去回答案例研究问题。如果你想了解更多数据分析相关内容,可以阅读以下这些文章:
如何玩转数据科学面试之统计篇
第一次技术面试一定要避免的5大错误
Google 官方 Channel 盖戳:谷歌面试官眼中的优秀简历长什么样?

面试之前

1 培养商业意识

如果你离面试还有很长时间,或者你想提高自己的商业头脑和数据科学在商业环境中的应用意识,可以多关注科技公司的博客文章,并定期阅读这些文章。比如,我在Medium上关注了Microsoft的Data Science、Walmart Global Tech、Instacart的Tech等播客。除了在Medium上,一些公司也有自己的博客网站和YouTube频道,例如Google Data Science Blog,Uber Engineering等。作为一个在数据科学行业没有全职经验的应届毕业生,我发现自己从这些博客文章的阅读中获益匪浅。它带领我理解了如何应用某些方法来解决实际的商业问题。也开阔了我的眼界,让我不断了解数据科学的前沿研究技术。

除了公司特有的博客,你还可以关注某些特定主题、并阅读相关的文章。比如,如果你对计算用户生命周期值感兴趣,Medium上有很多出彩的文章,都在不同的业务环境中对此进行了讨论。另外还有一家很棒的期刊,StellarPeers,其中发布了很多文章,讨论了不同产品和业务问题的解决方案。

阅读博客文章时,不要浪费太多时间在技术细节上,而是通过思考以下问题来总结你学到的知识:

  • 这篇文章想解决的商业问题是什么?
  • 他们用了什么方法?这些方法对我来说陌生吗?
  • 如何评估这些方法的性能?
  • 如何将它衍生到其他类似的商业问题上?

2 了解专业术语

熟悉业务指标,关键绩效指标(KPI):

  • 用户流失率/留存率,用户增长率(User Churn Rate/Retention Rate, Customer Growth Rate)
  • 客户生命周期值(Customer lifetime value)
  • 收入:每月定期收入(Revenue: Monthly recurring revenue)
  • 转化率(Conversion rate)

熟知常见的解决方案:

  • 对分类变量的正确处理:独热编码(one-hot encoding)
  • 降维:PCA
  • 处理缺失数据(missing data)
  • 处理异常值(outliers)
  • 因果推理技术(casual inference techniques)
  • 机器学习模型(machine learning models)
  • 评估模型性能(evaluating model performance)
  • 实验设计(experiment design)

对常见问题的意识:

  • 样本偏差:选择偏差、响应偏差(selection/response bias)
  • 内生性(endogeneity)
  • 相关性和因果关系之间的区别(correlation V.S. causation)
  • 多重共线性(multicollinearity)
  • 过拟合,欠拟合(overfitting, underfitting)

临近面试

在准备案例研究的面试问题时,如果时间有限,那针对面试中可能会问到的问题进行练习,会有很大帮助。

1 对公司进行研究

面试官通常会问一些他们每天都会遇到的问题。做研究时,请注意以下几个方面:

  • 公司相关信息:浏览公司的网站,Linkedin页面等,对公司有一个全面的了解:比如,它们属于哪个行业?他们的产品是什么?他们的产品可能存在哪些商业问题?
  • 浏览公司的博客:了解他们数据科学家每天要解决的问题和他的解决方法。总结一些他们常用的针对特定业务问题的技术。

2 研究公司的技术团队

  • 他们的数据科学家正在解决的问题:关注该公司的技术博客帖子。许多公司的数据科学家和工程师都会分享他们正在处理的项目,还会讨论他们处理过程中的技术细节。阅读这些博客文章,能帮助你了解这些公司面临的业务挑战,以及数据科学技能在现实世界中的应用。
  • 加入团队后,他们期待你能够解决的问题:仔细阅读你所申请职位的职位描述。特别是,分析工作职责中列出的他们需要和寻找的技能。
  • 即使是在同一家公司,不同团队中的数据科学家的日常任务也可能完全不同。如果你知道你的面试官是谁,试着在LinkedIn上搜索,找出面试官在哪个团队工作,或者以前在哪个团队工作过。然后问问自己,他们解决了什么商务问题,你的解决方案又是什么。

面试期间

在面试中,最重要的是要组织好你的答案,展示出你解决问题的能力和批判性的思维。

1 在提出任何解决方案之前,先明确问题!

用数据科学技术解决的商业问题,通常都是比较模糊的问题。比如,如何预测需求?如何通过推广活动来增加收入?等等。所以,在开始前明确需要解决的问题是很有必要的。根据你被问到的某个问题,你可以从以下几个方面进行确认:

  • 这个问题存在哪些前提?比如,如果被问到要如何降低客户流失率,那你应该先询问,你要评估的流失率的时间段是什么。
  • 对现有的数据做出合理预设:为了预测订单,要询问面试官我们有没有过去一个月的订单的历史数据。
  • 定义问题中的模糊词:这一点非常重要,因为它决定了你解决问题的方向。比如,如果问到某一应用程序的新功能是否良好,你必须首先界定什么是“良好”。“良好”可以定义为吸引更多客户,更高的用户参与度,更高的收入等,不过具体是取决于当下的环境。而且短期或长期来看,“良好”的定义也会有所不同。所以,在开始解决问题之前,我们需要确保找到了一个合理的目标。也就是说,我们可以在不同情况下提供不同可能的解决方案,而不是只关注某一种情形。
  • 定义问题中的指标:如果问题中没有定义任何业务指标,那么你需要让自己对目标有一个清晰且敏感的定义。比如,当我们评估用户应用中新功能的性能时,可以将指标设定为用户转换率、用户粘性时间等。
  • 重复你对问题的理解,并询问面试官你对问题是否正确理解了。你要让自己朝着正确的方向前进,这样也能为自己争取一些额外的时间来思考解决的方案。

2 从简而入,提出你的解决方案

明确问题后,你就可以开始提出你的解决方案。展示你对数据科学工具包的了解:是什么,怎样用以及为什么用。在给出更多条件的情况下,始终从最简单的解决方案开始,并进行逐步的改进。比如,你可以从一个线性回归模型开始理解数据,对要解决的问题有个大概的轮廓,然后转向更复杂的模型,讨论要选择哪些特征,等等。

3 始终说明解决方案背后的原因

解决方案的本身并不是最重要的部分,最重要的是你为什么选择它。始终说明为什么选择自己的方案,而不选择其他的可行性方案。例如,当解决如何在波动价格(surge prices )中选择波动乘数(surge multiplier)时,你可以说,因为网络效应的原因,我想使用综合控制(synthetic control),而像AB测试这样的实验设计在这里并不适用。解释你选择的原因,来验证你的解决方案,并向面试官展示你对这个话题的透彻理解。

4 评估你的解决方案:技术性和非技术性的

如何评估你的提案?从技术指标开始,比如模型的准确性,精准度,分类模型的召回率,R²数,回归模型的MSE。将技术指标与旧模型或基准模型进行比较,看看这次是否有所改进。接着,再比较非技术指标(如上面讨论过的商务指标),看看你的模型是否增加了公司收入。另外,还可以探讨其他指标,比如,我们可以解释模型的简易度,新特性对用户体验的影响,以及将模型部署到生产中的难度等级。

5 权衡利弊

  • 始终要注意你解决方案的潜在缺点。尝试讨论某些方法的利弊,并在深入研究后做出最终决定。
  • 讨论短期和长期利益之间的权衡。比如,市场营销活动是否会在短期内增加订阅量,从长远来看是否会增加收入。设定一个短期或长期不同的目标,可能会产生不同的解决方案。
  • 讨论不同利益集团之间的权衡。比如,共有三方使用Uber EATS这个平台–餐厅、外卖员和点餐者。试着去讨论一下你的提案会对这三方产生的所有影响。
  • 对计算复杂性和可解释性(complexity/interpretability)、更快结果(faster results)、更准确的模型(accurate models)、更高的实验成本(higher cpst in conducting an experiment)、更可靠的结果(reliable results)等方面进行权衡。

6 知道自己在谈论什么

面试官喜欢根据你的回答提出相应的拓展问题。比如,如果你提到想在自己的线性回归模型中添加正则化(regularization ),他们可能会问你为什么? L1和L2正则化(regularization)之间有什么区别,你会选择哪一个?这是面试官了解你对模型或技术的理解的一种方式。

7 接受暗示

好的面试官会在你偏离了他们想要的答案的时候给你一些提示。比如,如果你在谈论解决问题的方法A时,面试官可能会说,使用方法A可能会带来问题B,你觉得方法C怎么样?当你得到提示时,接受它!因为面试官们的目的并不是想迷惑你。

8 树立正确的心态

面试不是一场考试,尤其是当你面对的是一个没有正确答案的开放式问题时。向面试官展示你能把一个广泛的商务问题转换为可操作分析的思维过程非常重要。如果你向他们展示了如何改进商务问题,提出了数据科学技能,并演示了这些项目会如何影响你的期望目标,这都会有所帮助。你可以想象自己已经在这家公司工作了,你正在和同事讨论你们面临的问题的潜在解决方案。树立正确的心态可以帮助你减轻压力,展现你的真实水平。

9 面试期间思考时不要默不作声

这条规则适用于面试中提出的任何问题。要在面试官面前展示你的想法和你的思考过程,即使一开始那并不是一个完美的解决方案。你可以根据提示或进一步思考,不断修改更正你的答案。面试时保持沉默绝对不是明智之举。所以如果你完全不知道如何回答一个问题,就先从问清楚问题开始。

以上就是关于应对数据科学面试中的案例分析我所提供的相关技巧。如果你有其他建议,请在下方留言。感谢你的阅读!你还可以订阅我们的YouTube频道,观看大量数据科学相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Zijing Zhu
翻译作者:Lea
美工编辑:过儿
校对审稿:Jiawei Tong
原文链接:https://towardsdatascience.com/structure-your-answers-for-case-study-questions-during-data-science-interviews-a14a02d21e6c