您的目标是在机器学习领域获得职位吗?很棒的选择!机器学习领域的工作保证了您的职业生涯具有挑战性但又令人满意,您可以在其中获得专业发展并获得丰厚的回报。最好的消息是——就业市场对专业人士来说即使不是“饥饿”,也“饥饿”。难怪机器学习工程师是 2023 年数据科学领域最受欢迎的工作之一。
那么如何准备机器学习面试呢?
如果您刚从学校毕业或从不相关的职业转行并想进入该领域,则无需着急 - 您首先必须获得该工作所需的必要技能。因此,在开始之前,您可以查看这份关于如何成为机器学习工程师的综合职业指南。它基于 500 多个职位发布,回答了每个机器学习工程师爱好者需要了解的最常见问题。
另一方面,如果您已经有一些 ML 经验,请首先修改日常 ML 操作背后的理论。一种方法是清除书本上的灰尘,或者只是参加机器学习课程来识别知识差距并更新您的技能。
然后,在完善了简历和项目组合之后,面试准备中同样重要的部分就是—— 调查最有可能在面试过程中出现的热门 ML 面试问题。
首先,要记住的一件好事是,数据科学面试中提出的机器学习问题通常分为三大类:
- 概念性问题 测试您是否具有扎实的机器学习理论背景
- 简历驱动的问题 基于您的数据科学简历项目
- 端到端建模问题 测试您是否可以将机器学习应用于与您所申请的公司相关的实际业务问题
在本文中,我们将重点讨论第一类,即概念性问题。
对于数据科学家角色,概念性机器学习问题通常围绕不同的机器学习术语以及流行算法的运行方式。
但是,如果您正在申请机器学习工程师职位,您应该会被问及更深入、更高级的 ML 相关概念和问题。
在这里您可以找到最常见问题的列表,并且为了让事情变得更好,还提供了相应的答案。
十大机器学习面试问题 - 目录:
1.解释线性回归模型并讨论其假设。
线性回归是监督学习的一种形式,其中模型是根据标记的输入数据进行训练的。在线性回归中,目标是估计函数 f(x) s®,其中每个特征与目标变量 y 具有线性关系,其中 y= X*beta。 X是预测变量矩阵,beta是参数向量,在预测目标变量时决定每个变量的权重。
由于线性回归是最常用的模型之一,因此它也有幸成为最常被误用的模型之一。因此,在运行之前,您必须验证其四个主要假设,以防止出现错误结果:
- 线性:特征集与目标变量之间的关系是线性的。
- 同方差性:残差的方差是恒定的。
- 独立性:所有观察结果都是相互独立的。
- 正态性:假设 Y 的分布呈正态分布。
线性回归的广泛实证应用意味着面试问题将确保你拥有更多的知识,而不仅仅是盲目地从 scikit-learn 导入并使用它。面试官将尝试确定您是否深入了解模型的工作原理、假设以及不同的评估指标。他们将解决现实生活中出现的边缘案例,并挑战您将理论付诸实践的能力。
2. 描述随机森林背后的动机,并提及它们优于个体决策树的两个原因。
随机森林或集成模型背后的动机可以通过使用以下示例轻松解释:假设我们有一个问题要解决。我们聚集了 100 个人,问他们每个人这个问题,并记录他们的答案。当我们把收到的所有答复结合起来后,我们会发现,汇总后的集体意见将接近问题的实际解决方案。这被称为“群体的智慧”,事实上,这也是随机森林背后的动机。我们特别采用弱学习器(ML 模型),即随机森林中的决策树,并汇总其结果,通过消除对特定特征集的依赖来获得良好的预测。在回归中,我们取平均值;在分类中,我们取分类器的多数票。
一般来说,您应该注意到没有一种算法比另一种算法更好。它始终取决于情况和使用的数据集(检查没有免费的午餐定理)。尽管如此,随机森林通常比单个决策树具有更强的预测能力,这是有原因的:
- 决策树容易过度拟合,而随机森林在特征选择和数据采样过程中使用随机性,因此可以更好地概括未见过的数据。因此,与决策树相比,随机森林具有较低的方差,而不会因偏差而大幅增加误差。
- 一般来说,像随机森林这样的集成模型表现更好,因为它们是各种模型(随机森林中的决策树)的聚合,使用了“群体智慧”的概念。
3.梯度提升和随机森林有什么区别和相似之处?与彼此相比,各自的优点和缺点是什么?
梯度提升和随机森林之间的相似之处可以总结如下:
- 这两种算法都是基于决策树的。
- 两者都是集成算法——它们是灵活的模型,不需要太多的数据预处理。
我们可以在这里提到两个主要区别:
- 随机森林使用 Bagging。这意味着树以并行方式排列,所有树的结果最终通过平均或多数投票来汇总。另一方面,梯度提升使用Boosting,其中树以一系列顺序方式排列,其中每棵树都试图最小化前一棵树的误差。
- 在随机森林中,每棵树都是独立于其他树构建的,而在梯度提升中,每棵树都依赖于前一棵树。
当我们讨论两者之间的优点和缺点时,将它们与它们的缺点和优点并列是公平的。我们需要记住,它们中的每一个在某些情况下都比另一个更适用,反之亦然。这取决于我们想要达到的结果和我们需要解决的任务。
因此,梯度提升相对于随机森林的优点包括:
- 梯度提升可以比随机森林更准确,因为我们训练它们以最小化前一棵树的误差。
- 它还可以捕获数据中的复杂模式。
- 当用于不平衡数据集时,梯度提升比随机森林更好。
另一方面,我们也具有随机森林相对于梯度提升的优势:
- 与梯度提升相比,随机森林不太容易过度拟合。
- 由于树是并行创建且彼此独立的,因此训练速度更快。
此外,梯度提升还存在以下缺点:
- 由于训练迭代过程中对错误的关注以及树构建缺乏独立性,梯度提升确实更容易出现过度拟合。如果数据有噪声,提升树可能会过度拟合并开始对噪声进行建模。
- 在梯度提升中,训练可能需要更长的时间,因为每棵树都是按顺序创建的。
- 此外,调整梯度增强的超参数比随机森林的超参数更复杂。
4. 简要解释K-Means聚类以及如何找到K的最佳值。
K-means 是一种著名的聚类算法。它因其易于解释和实现而经常被使用。该算法首先将一组数据划分为 K 个不同的簇,然后任意选择每个簇的质心。它通过首先将点分配给最近的簇然后更新质心来迭代更新分区,重复此过程直到收敛。该过程本质上最小化了所有簇之间的总簇间变化。
在 K 均值聚类中寻找 K 的最佳值时,肘部方法是众所周知的。这种技术背后的直觉是,前几个聚类将解释数据中的大量变化。然而,过了某个点,添加的信息量就会减少。查看下面的图表(图 1),解释的变化(在 y 轴上)与簇 K 的数量(在 x 轴上)的关系,y 轴在某个水平上应该有急剧变化。 K。在此特定情况下,下降发生在 k=3 处。
图 1. K-Means 聚类中寻找 K 最佳值的肘部图
所解释的变异通过簇内误差平方和来量化。为了计算此错误通知,我们使用欧几里得距离在误差平方和总和处查找每个簇。
寻找 K 值的另一种流行的替代方法是应用轮廓方法,该方法旨在测量其簇中的点与其他簇相比的相似程度。可以用以下方程计算:(x-y)/max(x,y),其中x是到最近簇中的示例的平均距离,y是到同一簇中的其他示例的平均距离。对于任何给定点,该系数在 -1 和 1 之间变化。值 1 表示该点位于正确的簇中,值 -1 表示该点位于错误的簇中。通过在 y 轴上绘制轮廓系数与每个 K 的关系,我们可以了解最佳簇数。然而,值得注意的是,这种方法比前一种方法的计算成本更高。
5.什么是降维?您能讨论其中一种方法吗?
降维可以降低数据的复杂性或维度,同时将重要信息的损失降至最低。将数据分解为较小的变量集对于汇总和可视化数据集也很有用。例如,降维方法可用于将大型数据集投影到 2D 或 3D 空间中,以便于可视化。
用于降维的最常用方法之一是主成分分析(PCA)。 PCA 将高度相关的变量组合成一组新的较小的构造,称为主成分,捕获数据中的大部分方差。该算法为每个行向量寻找少量独立的线性组合来解释方差。因此,算法首先找到具有最大方差的分量。然后,找到的第二个组件与第一个组件不相关,并且具有第二高的方差,对于其他组件依此类推。一般来说,它们的数量取决于主成分可以解释的方差百分比的阈值。
6.什么是L1和L2正则化?两者之间有什么区别?
正则化是一种通过尝试使模型更简单来避免过度拟合的技术。应用正则化的一种方法是将权重添加到损失函数中。这样做是为了考虑最小化不重要的权重。在 L1 正则化中,我们将权重的绝对值之和添加到损失函数中。在 L2 正则化中,我们将权重平方和添加到损失函数中。
因此,L1 和 L2 正则化都是减少过度拟合的方法,但要了解差异,最好了解它们的计算方式:
损失(L2):成本函数+L*权重²
损失 (L1):成本函数 + L * |权重|
其中 L 是正则化参数。
L2 正则化惩罚巨大的参数,防止任何单个参数变得太大。但权重永远不会变为零。它将参数平方添加到损失中。避免模型过度拟合任何单个特征。
L1 正则化通过在损失函数中添加一项(损失的绝对值)来惩罚权重。这会导致删除参数的小值,直到参数达到零并在其余历元中保持不变。从我们的计算中完全删除这个特定变量。因此,它有助于简化我们的模型和特征选择,因为它将系数缩小到零,这在模型中并不重要。
7. 过拟合和欠拟合有什么区别,如何避免它们?
过度拟合意味着模型在训练数据上表现良好,但在测试/验证数据上却不能很好地概括。当训练误差较小,而验证和测试误差较大时,可以注意到这一点。当模型相对于数据的大小及其质量过于复杂时,就会发生过度拟合。这将导致更多地了解数据噪声中的模式或数据中非常具体的模式,而模型将无法将其推广到新实例。
以下是过度拟合的可能解决方案:
- 通过减少特征数量或使用正则化参数来简化模型。
- 收集更具代表性的训练数据。
- 使用数据清理技术减少训练数据中的噪声。
- 使用数据预处理技术减少数据不匹配。
- 使用验证集来检测过度拟合何时开始并停止训练。
欠拟合分别与过拟合相反。本例中的模型太简单,无法学习训练数据中的任何模式。当训练误差较大且验证和测试误差较大时可以看出这一点。
以下是几种可能的解决方案:
- 选择具有更多参数的更复杂的模型。
- 如果使用正则化参数,请减少它。
- 使用特征工程向学习算法提供更好的特征。
8. 机器学习模型中的偏差和方差是什么,并解释偏差与方差的权衡?
任何监督机器学习模型的目标都是估计映射函数 (f),该函数可预测给定输入 (x) 的目标变量 (y)。预测误差可以分为三部分:
- 偏见:偏差是模型为了使目标函数易于学习而做出的简化假设。低偏差表明对目标函数的形式做出的假设较少。高偏差表明对目标数据的形式做出了更多假设。偏差误差越小,模型越好。然而,如果它很高,则意味着该模型与训练数据拟合不足。
- 方差:方差是使用不同训练数据时目标函数的估计将改变的量。目标函数是通过机器学习算法根据训练数据估计的,因此我们应该期望该算法具有一些方差。理想情况下,一个训练数据集到下一个训练数据集的变化不应太大。这意味着该算法擅长找出输入和输出变量之间隐藏的底层映射。如果方差误差很高,则表明模型过度拟合训练数据。
- 不可约误差:这是由所选问题框架引入的误差,可能是由影响输入变量到输出变量映射的未知变量等因素引起的。无论使用什么算法都无法减少不可约误差。
有监督的机器学习算法旨在实现低偏差和低方差。反过来,该算法也应该获得良好的预测性能。此类机器学习算法的参数化通常是平衡偏差和方差的斗争。例如,如果您想在给定大量潜在预测变量的情况下预测房价,那么具有高偏差但低方差的模型(例如线性回归)将很容易实现。然而,这会使问题过于简单化,在这种情况下,预测的房价将经常偏离市场价值,但这些预测价格的方差值会很低。另一方面,具有低偏差和高方差的模型(例如神经网络)将导致预测的房价更接近市场价值,但预测结果会根据输入特征而有很大差异。
9. 定义精确率、召回率和 F1,并讨论它们之间的权衡。
精确率和召回率是超出准确率使用的两个分类评估指标。
考虑一个有很多类的分类任务。这两个指标都是针对特定类定义的,而不是针对一般模型定义的。类精度(比方说 A)表示 A 类正确预测占 A 类总预测的比例。它与准确率类似,但适用于单个类。因此,精度可以帮助您判断给定预测正确的可能性有多大。召回率是测试集中存在的所有 A 类样本中正确分类的 A 类预测的百分比。它表明我们的模型检测相关类别的能力如何。
在现实世界中,在优化精度和召回率之间总是需要权衡。假设您正在执行一项将癌症患者与健康人进行分类的任务。将模型优化为仅具有高召回率意味着该模型将捕获大多数癌症患者,但同时,癌症误诊人数也会增加。这将使健康的人接受危险且昂贵的治疗。另一方面,优化模型以获得高精度将使模型对诊断充满信心,有利于漏掉一些真正患有该疾病的人。这将导致致命的后果,因为他们得不到治疗。因此,优化精确率和召回率非常重要,它们各自的重要性百分比将取决于您正在处理的应用程序。
这引出了问题的最后一点。 F1 分数是精度和召回率的调和平均值,其计算公式如下:F1 = 2* (精度*召回率) / (精度 + 召回率)。当召回率和精确率同样重要时,使用 F1 分数。
10. 提及处理数据集中丢失或损坏数据的三种方法。
一般来说,现实世界的数据通常有很多缺失值。造成这种情况的原因可能是数据损坏或无法记录数据。在数据集的预处理过程中,缺失数据的处理非常重要,因为许多机器学习算法不支持缺失值。
有几种不同的方法可以处理这些问题,但这里重点关注最常见的方法。
- 删除有缺失值的行
第一种方法是删除具有空值的行或列。这是一种简单快速的方法,可以得到一个健壮的模型。但是,根据丢失数据的数量,它会导致大量信息丢失。因此,只有当缺失数据占整个数据集的一小部分时才可以应用它。
- 使用支持缺失值的学习算法
当涉及到数据集中的缺失值时,一些机器学习算法非常有效。当存在缺失值时,K-NN 算法可以忽略距离度量中的列。朴素贝叶斯还可以在进行预测时支持缺失值。另一种可以处理缺失值或空值的数据集的算法是随机森林模型,因为它可以处理非线性和分类数据。此方法的问题在于,scikit-learn 库中这些模型的实现不支持处理缺失值,因此您必须自己实现。
- 缺失值插补
数据插补意味着用估计值替换数据集中缺失或不一致的数据。确定这些重置价值的方法有多种。最简单的一种方法是更改行或列中重复次数最多的缺失值。另一个简单的解决方案是适应行或列的其余部分的均值、中位数或众数。这样做的优点是,这是对丢失数据的简单快速的修复,但它可能会导致数据泄漏,并且不会考虑特征之间的协方差。更好的选择是使用 ML 模型来学习数据之间的模式并预测缺失值,而不会造成任何数据泄漏,并且将考虑特征之间的协方差。这里唯一的缺点是计算复杂性,特别是对于大型数据集。
额外问题:讨论如何使您的模型对异常值具有鲁棒性。
在加强模型的异常值方面有多种选择。调查这些异常值始终是了解如何治疗它们的第一步。认识到发生这些问题的本质后,您可以应用以下几种方法之一:
- 添加可减少方差的正则化,例如 L1 或 L2 正则化。
- 使用通常受异常值影响较小的基于树的模型(随机森林、梯度增强)。
- 对数据进行缩尾处理。缩尾化或缩尾化是通过限制统计数据中的极值来减少可能的虚假异常值的影响的统计变换。在数值数据中,如果使用 Z 分数分布几乎呈正态,我们可以检测异常值并通过删除或用某个值限制它们来处理它们。
如果分布是倾斜的,我们可以使用 IQR 检测并通过删除或用某个值限制它来再次处理它。在分类数据中检查百分比中的值计数。如果某个类别的记录很少,我们可以将其删除,也可以像其他类别一样使用某些类别值对其进行限制。 - 转换数据。例如,当响应变量服从指数分布或右偏时,您可以执行对数转换。
- 使用更稳健的误差指标,例如 MAE 或 Huber 损失,而不是 MSE。
- 删除异常值。但是,如果您确定异常值是真正的异常值,不值得添加到您的模型中,请执行此操作。这应该是您最后考虑的因素,因为丢弃它们意味着丢失信息。
十大机器学习面试问题和答案:后续步骤
无论您目前的职位、刚毕业的毕业生、执业专业人士还是课程毕业生,准备面试都需要时间和精力。从制作简历到实际的申请过程,再到准备机器学习面试,任何事情都需要您的奉献。
然而,如果最终等待你的奖励是 ML 梦想的工作,那么一切都是值得的。如前所述,这是一个供需双方都非常感兴趣的领域。这分别意味着各种知识和技能要求,但最终,机器学习专业人员的满意度是数据科学领域最高的之一。
因此,花一些时间准备机器学习面试问题是一项很好的投资。我希望这篇文章是一个坚实的起点,因为它可以让您先睹为快,了解最常见的问题以及答案应该是什么样子的示例。
请记住,该列表并不包罗万象,还可能会提出许多其他问题。好消息是它们可能会相似。要回答其中任何一个问题,您应该重新了解 ML 的必备知识,例如基本的机器学习概念、流行的 ML 算法、何时何地使用它们以及它们的优点和缺点是什么。也就是说,如果您对此感到有点生疏,我们已经为您提供了帮助。
365 数据科学计划提供由知名行业专家主持的自定进度课程。从最基础的知识一直到高级专业化,您将通过大量的实践练习和真实的商业案例来学习。如果您想了解培训如何进行,请通过在下面注册来选择一系列免费课程。