如何征服数据科学面试中的Python编程考试

如何征服数据科学面试中的Python编程考试

编码已成为数据科学面试中不可或缺的一部分。尽管编程已经无处不在,但对许多人来说依旧是非常可怕的存在。通过本文,我想通过分享最近遇到的各种代码面试和问题,帮你战胜自己内心的恐惧。

让我们来看看不同的面试形式和面试官提出的问题,并了解这些问题想要测试候选人哪些概念。如果你想了解更多数据分析相关内容,可以阅读以下这些文章:
数据科学面试中Product Sense问题,怎么完美解答?
如何回答ML机器学习的面试问题?
如何准备DS数据科学家面试?
商业分析师的面试问题,教你如何回答

形式1— 实时编程

图源:Unsplash 摄影:ThisisEngineering RAEng

面试官会要求你打开一个编辑器(如Jupyter notebook),并分享屏幕。面试过程中,如果候选人能够让面试官了解自己的想法,那就再好不过了。通常情况下,面试官会带动求职者跟着他们的想法走。大多数面试官都很体贴,允许你搜索语法等。

例如:

问题一: 研究新冠疫情数据集。绘制各州每月确诊新冠疫情人数图。显示 6 月份的排名前三的州。

测试的概念

  • 1. 探索性数据分析(Exploratory Data Analysis)
  • 2. 数据清洗(Data Cleaning)
  • 3. 处理缺失值(Handling missing values)
  • 4. 数据框操作(Data Frame manipulations)
  • 5. 执行聚合操作(Performing aggregate operations)
  • 6. 日期时间操作(Datetime manipulations)
  • 7. 数据可视化(Data Visualization)

问题二:创建一个具有传感器值的虚拟数据集(Dataset)

传感器数据,虚拟数据集(图片由作者提供)

找出此时间范围内压力(Pressure)与温度(Temperature)的最高比率。

测试的概念

  • 1. 探索性数据分析(Exploratory Data Analysis)
  • 2. 数据清洗(Data Cleaning)
  • 3. 数据框操作(Data Frame manipulations)
  • 4. 执行聚合操作(Performing aggregate operations)
  • 5. 日期时间操作(Datetime manipulations)
  • 6. 数据可视化(Data Visualization)

问题三:编写一个代码,从用户那里获取一个数字,并输出小于用户输入的斐波那契数(Fibonacci numbers)

测试的概念

  • 1. 基础 Python 编程(Basic Python Programming)
  • 2. 基本逻辑思维(Basic logical thinking)
  • 3. 对数据结构和算法的认识(这个问题可以通过动态编程,快速解决)
图源:Unsplash 摄影:LinkedIn Sales Solutions

形式 2——基于平台的测试

在 Hacker rank/Hackerearth(或其他)平台上进行计时测试。

公司使用此测试,检查候选人数据科学领域的知识。因此,面试中经常出现有关概率、统计、机器学习、深度学习等客观类型问题(例如:共 10 个问题,每个问题 2 分)和一些有关 SQL、机器学习、数据结构、算法的编码问题(很少见但需要注意一下)(2-5 个问题,其权重基于问题复杂性及概念)

例如:

问题一:已知一个分布(Distribution)的累积分布函数(CDF),求其均值。

测试的概念—基本概率论

问题二:A决定去跳伞旅行。根据他的研究,故障导致死亡的概率为 0.001。如果 A 连续跳伞 500 次,死亡的概率是多少?

选项包括:

a) .50

b) .29

c) .39

d) .01

测试的概念——分布(Distribution)知识

问题三:已知欧洲 4 家商店1年的软饮销售料数据集。处理数据并可视化数据。你能否预测以后的需求量,以及哪些因素可能会影响其需求量?如果你知道答案,请使用评论和可视化向技术和非技术人员解释你的发现。

测试的概念 – 数据科学项目中,包括建模在内的所有活动。

问题四:在示例数据集上编写 SQL 查询。

测试的概念 – 连接(Joins)、分区(Partition)、排序(Rank)、排序依据(Order by)、分组依据(Group by)

问题五:已知两个数a b, a打印f (a, b) = g (a) + g (+ 1) + g(+ 2) +……+ g (b – 2) + g (b – 1) + g (b)输出值;其中g(x)定义为小于x的所有斐波那契数。

测试的概念 —

  • 1. Python 编程(Python Programming)
  • 2.逻辑思维(Logical thinking)
  • 3. 数据结构和算法(Data Structure and Algorithms)

问题六:已知 X,求 X 的两个因数 (a, b) 的最小和

测试的概念 —

  • 1. Python 编程(Python Programming)
  • 2. 逻辑思维(Logical thinking)

问题七:使用 get 请求读取链接中存在的数据,其中包含莎士比亚所有作品。删除此链接中出现的数字和停用词。计算文本中不重复单词的数量。

测试的概念 —

  • 1. 使用 Get 和 Pull 请求读取数据
  • 2. 基本的 NLP,如停用词移除
  • 3. 将字符串拆分为标记
图源:Unsplash 摄影:BRUNO EMMANUELLE

形式 3 — 现场案例分析(Onsite Case study)/回家作业(Take home Assignment)

可以是现场(现在很多通过在线)短期(1-3 小时)案例研究,或者是为期3-7 天的回家作业;具体为给候选人一个样本数据集(在大小和复杂度上与真实数据集非常相似),并要求在 90 分钟内制定解决方案。在邮件中表明他们需要让面试小组了解他们的解决方案及思考过程。

如果是回家作业,大多数公司都理解候选人平时也需要工作,并且会考虑到在合理范围内延长提交时间。

技巧:

这种形式的面试是展示候选人知识广度和深度的绝佳机会。如果你的回答可以不仅仅包含问题的内容,那么你的得分就会很高。

例如,查找与手头问题相似的文献(论文)。向面试官展示,你是如何从论文中获得灵感的;如果小组特别要求候选人提交基于深度学习的解决方案,那么我建议:创建机器学习解决方案,并比较结果。也许一个模型在某部分数据优于另一个模型。研究这部分数据。尝试构建两者的集成模型。

这等于告诉小组成员——你不仅符合该职位最低要求,甚至更加优秀,同时可以在工作中发挥自己的所有技能。

示例:零售交易记录案例研究

面试公司提供了一个礼品店两年的交易数据集。

业务问题:预测客户下个月是否会购买产品。

面试官坚持要求使用深度学习技术解决这个问题。

这是展示你在模型构建领域所掌握的技能的最佳机会,如果你能充分利用上面提到的技巧,那么成功通过面试,获得offer的机会就很高。

结论

我希望这篇文章能在一定程度上减轻你对编程的恐惧,并创建公平的竞争环境。本文展示了公司测试候选人编程和解决问题技能的不同方式。练习上述概念并不简单,需要你花很多心思。

如果由任何问题,您可以在文章下方发表评论或留言。你还可以订阅我们的YouTube频道,观看大量数据科学相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Divya Choudhary
翻译作者:Lia
美工编辑:过儿
校对审稿:Jiawei Tong
原文链接:https://towardsdatascience.com/conquer-the-python-coding-round-in-data-science-interviews-5e27c4513be3