设想一下,你申请了梦寐以求的公司的ML工程师职位,接到了该公司HR的电话,告知你准备好参加面试。接到电话后,你想跟着ML学习指南,打算开始学习相关知识。
在面试当天,你准备充分,带着信心走进面试现场。然而,面试结束后,你接到招聘人员的电话,说他们决定不录用你。这是怎么回事?
因为,简单回答问题是不够的,面试官想看到你对该主题/问题更深层次的了解。我想举例软件工程编码类面试:在面试过程中,如果面试官要求你在排序列表中搜索一个元素,正确率高但效率低的做法是线性搜索列表中的每个项目,但更好的做法是使用二进制进行搜索。
同样,如果你被问及逻辑回归(logistic regression)和线性回归(linear regression)哪个更适合任务分类,逻辑回归是正确答案,但直接回答就不理想,更好的回答是进一步解释为什么不使用线性回归的(即使用线性回归会违反假设)。可能有点矫枉过正,但是在你参加大公司面试时,所有候选人都知道逻辑回归更适用于任务分类,但很少有人会进一步解释原因。
对于机器学习(ML)中的理论问题,面试官通常只会问一个问题,紧接着,会根据这个问题衍生出 1-4 个问题。在回答这些问题时,正如我们之前所说的,简单地陈述答案是不够的,你应该将问题展开讲述,例如陈述利弊、讨论替代模型/算法、编写方程式、甚至建议如何生产模型等。进一步回答会让你从一个普通的求职者变成一个优秀的候选人。
让我们来看看下面的几个例子,帮助我们了解应该如何回答 ML 面试问题。
线性回归(Linear Regression)问题和答案示例
问题
假设你是医疗保健专业人员团队中的 ML 专家。团队正在进行的项目是确定患者的预期寿命,然后完成下游任务。其中,一位医保人员建议你使用线性回归。请问线性回归适用于这种情况吗?
候选人 1:
是的,可以使用线性回归,因为输出是实数(即患者的预期寿命)。
候选人2:
线性回归适用于这种情况,因为我们预测的值为连续值。
为了保证线性回归真的适用于这种情况,我们必须遵循以下 4 个假设:
- 1. 线性(Linearity):这意味着自变量和因变量之间的关系必须呈线性。
- 2. 同方差性(Homoscedasticity):残差(误差)的方差为常数。
- 3. 独立性(Independence):自变量(观测值)的相关性很低,即相互独立。
- 4. 正态性(Normality):我们观察的固定值中,所有因变量都呈正态分布。
需要记住的一点是,大多数公司将候选人从1-5分进行评分(或类似打分制度),然后根据分数决定是否录用。如果你希望面试官认为你是更优秀的(4-5分),你需要回答出问题背后的内容,而不是回答表面——这正是你需要学习的技能。
从上面的例子我们可以看出,候选人 1 可能会得到 2-3分 ,而候选人 2 会得到 5 分。两个候选人都回答了这个问题,但第二个候选人的回答表明了他对线性回归有更深层次的理解。
让我们来看看上述问题的后续问题:
假设你能获得的数据有:一个人的出生年份、BMI、出生时所在的国家/地区、每周饮酒数量和出生时的国籍。然而,这些特征存在一个问题,这个问题是什么呢?
候选人 1:
问题为:出生时国家和出生时国籍之间存在共线性,即相关性很高。
候选人2:
问题为:出生时国家和出生时国籍之间存在共线性,即相关性很高:出生时的国家可以预测出生时的国籍,反之亦然。这就是问题所在,如果这两个特征同时存在,我们将无法解释结果,因为我们无法区分两个共线性变量单独带来的影响,并且这也违反了线性回归假设之一独立性。
我们可以通过使用方差膨胀因子 (VIF) 来识别共线性。VIF 对每个自变量进行评分,该分数表明其他自变量对该自变量的解释程度。通常,分数高于5表明两个自变量之间存在共线性。我们可以通过删除其中一个特征或线性组合这两个特征来解决共线性的问题。由于两者都是分类值,因此最佳做法是删除出生时的国家/地区或出生时的国籍。
通常情况下,当你想知道面试中会出现哪些问题时,你应该始终从两方面回答问题:
- 1. 明确问题内容
- 2. 提供解决问题的方法(如果你可以做到,那么表明你是一个强有力的候选人)。
同样,候选人 1 回答了问题,但他们没有展示出与该话题相关的专业知识,可能得2-3分,而候选人 2 表现出对主题的掌握(共线性),因此会得到 5 分。通过这种方式回答问题,面试官会觉得你非常优秀,把你列为强有力的候选人之一,这样你的排名也就更靠前了。
感谢你的阅读!你对于机器学习面试还有什么想法或经验?欢迎在文章下方留言!
原文作者:Stefan Hosein
翻译作者:Lia
美工编辑:过儿
校对审稿:Jiawei Tong
原文链接:https://towardsdatascience.com/how-to-ace-ml-interview-questions-ae826387b583