数据科学面试中8个实用技巧

22-09-05 banq

帮助您在下一次数据科学和/或机器学习面试中取得成功的实用技巧:

1.先了解问题
在某些情况下,您可能会被要求说出您将如何使用机器学习解决特定问题。

大多数应用数据科学家和机器学习工程师角色的面试通常都是这种情况,您需要解决实际的业务问题(而不是仅仅研究可能永远不会出现的技术)

理解问题通常比解决方案本身更重要。一旦问题被明确定义,解决方案通常是显而易见的。

在某些情况下,尤其是在面试中的综合场景中,利用数据和建模将是可行的方法,但您应该自己做决定。

这里的要点是确保您提出问题,以确保您在进入解决方案之前了解问题和所涉及的权衡。

2. 认识到何时不使用数据科学/机器学习解决方案
以下是一些可能不合适的示例: 

  • 当我们不能很好地理解问题时(也许现在一个好的、彻底的 EDA 就足够了)
  • 企业现在需要一个快速解决方案来解决紧急问题(建模需要很长时间)
  • 没有可处理的数据!(在你收集到足够的数据之前,手动构建的启发式方法可能会更好)
  • DS/ML 解决方案的成本高于解决问题的价值(经济性差)

更关心业务成果而不是如何交付这些成果是关键。数据科学本身并不是目的。

3. 了解支持机器学习的应用程序与常规软件的不同之处和不同之处
支持机器学习的软件仍然是软件。生产机器学习系统仍需要以某种方式连接到底层 IT 基础设施。
它必须通过单元/集成测试进行版本控制和彻底测试,并且应该将公共代码提取到其他库中并在团队中共享。复杂性应该得到控制,以便对代码进行推理并在以后对其进行重构。
简而言之,您在软件工程 101 中学到的所有内容也适用于 ML 代码。

机器学习系统和常规软件的主要区别:

  • 首先是他们可以默默地失败 。与常规软件不同,即使没有明确的“错误消息” ,ML 系统也可能产生垃圾。当您的模型的一个重要功能由于上游数据问题而中断时,系统仍会继续对事件进行评分,而不知道它被输入了错误的数据。 
  • 持续需要跟踪数据是第二个主要区别。如果你想重现系统行为,你不仅需要使用的确切代码,还需要训练它的数据。


4. 了解模型性能和复杂性之间的权衡
机器学习解决方案的复杂性应该与它们为业务带来的价值成正比。更复杂的模型,例如更高容量的分类器,使用非线性和集成,通常会 产生更好的 性能。您使用的功能也是如此,例如复杂的预处理和工程。
然而,机器学习系统越复杂,将该模型部署到生产中的成本和难度就越大。此外,维护和监控工作也将更加繁重和耗时。当您考虑这些权衡时,请问自己以下问题:

  • 用深度神经网络替换简单的 Boosted-Tree 模型是否值得AUC小幅增加? 
  • 在这种情况下,是否应该用更复杂的线性回归模型替换非常简单的线性回归模型?
  • 我们是否应该将文本和图像特征合并到当前的表格模型中?
  • 我们应该使用组合多个模型的结果而不是单个模型的集成吗?

此类问题的答案通常是“取决于业务环境”。作为数据科学家,你的工作是帮助利益相关者了解在哪里划清界限,以及我们从哪里开始看到收益递减。

5. 考虑模型如何推动业务成果
除了最入门级的职位外,您都需要了解机器学习模型如何帮助企业赚钱,即它们如何帮助企业降低成本、增加收入或提高客户满意度? 
您必须将机器学习模型作为其所在业务 流程的一部分进行情境化。问自己以下问题: 
数据科学家 (DS)

  • “您如何衡量这种模式的业务影响?”
  • “如果我告诉你非技术人员会使用这个模型的结果,它会如何改变你对模型的选择?”

机器学习工程师 (MLE)
  • “客户服务将如何使用该模型产生的预测?”
  • “考虑到场景 X,将此模型作为实时服务运行与将其作为日常批处理作业运行之间的权衡是什么?”


6. 不要害怕说“我不知道”
几乎可以肯定的是,你会被问到你没有经历过的事情,所以在这些情况下不要害怕诚实。您不需要什么都知道,而是能够学习日常工作中需要的任何东西。
假装知道你不知道的事情是你在面试中可以做的最糟糕的事情之一。面试官很容易检查你是否知道你在说什么。而且,如果很明显你在假装知道你不知道的事情,那将是一个巨大的危险信号。
夸大你的知识水平的一个很好的选择是做出有根据的猜测(明确表示这是一个猜测)。这是展示您快速适应新概念的绝佳机会!
例子: 
“我不知道你所说的 X 到底是什么意思,但根据上下文和我以前的经验,我猜它大概是……。那是对的吗?” 

7. 应回答有关您声称有经验的主题的问题
证明您在与数据科学/机器学习相关的某些领域有经验通常符合您的最佳利益,尤其是当它与您申请的职位相关时。如果您正在为一家计算机视觉公司面试,那么绝对值得一提的是,您在之前的工作中拥有使用卷积神经网络图像处理的经验。
但是,这会引发围绕这些主题的问题,因此请确保您能够回答这些问题。始终仔细检查您的简历和个人资料是否仅包含您可以轻松回答问题的要点。

8. 机器学习系统从构思到运行的生命周期
了解支持机器学习的系统如何从一个想法演变为生产中的实际系统非常重要。 

1、前
在拥有工作模型之前,您需要了解要解决的问题并确保 DS/ML 是可行的方法。在这里,您可能会与多个利益相关者交谈,例如产品经理、业务分析师和软件工程师。
确保所有参与的参与者都了解约束以及模型的使用方式。 

2、期间
在数据分析和建模期间,对许多前提进行了测试,同样,随着项目的进展,将有大量的沟通来验证假设并让人们加快速度。这是您通常考虑策略层的地方(即将模型分数转化为决策)。
第一次部署是项目中的关键步骤,很多事情都可能出错。在这里,模型被集成到它将成为其中一部分的任何基础设施中。在一切准备好实际用于生产之前,很可能会有一些修复和调整。

3、后
部署模型后,必须监控 例程以确保模型输入和输出的行为符合预期。最后,您需要考虑是否/何时重新训练模型以及模型本身是否会影响未来的训练集。