根据成为机器学习工程师所需的技能,机器学习面试中提出的问题属于以下类别之一:
- 基于编程基础的机器学习面试问题
- 基于统计和概率的机器学习面试问题
- 基于应用机器学习算法和库的机器学习面试问题
- 基于软件工程的机器学习面试题
- 具有挑战性的谜题
为什么要从事机器学习工程师的工作?
- 根据流行的就业门户网站 Indeed.com 发布的 30 个增长最快的技术职位列表——
- 数据科学和机器学习工作在顶级技术工作列表中占据主导地位。
- 2017 年,数据科学家的职位发布增加了 135%,而机器学习工程师的职位发布增加了 191%。
- 排名前 10 的科技职位中有 3 个是人工智能和数据相关职位,其中机器学习职位位列第二。
- 今年英国超过 10% 的工作都是技术工作,需要数据科学、机器学习和人工智能技能。
仍然不相信?我们鼓励您阅读这篇文章 - 为什么要学习机器学习?
由于对机器学习工程师和数据科学家的需求超过了供应,组织发现很难雇用技术人才,机器学习职位的潜在候选人也发现很难通过机器学习面试。机器学习是一个广泛的领域,在机器学习工程师面试期间可能不会问到具体的机器学习面试问题,因为所提出的机器学习面试问题将集中于雇主试图填补的空缺职位。例如,如果您考虑金融机器学习工程师的工作角色与机器人工作,那么两者在数据、架构和所涉及的职责方面将完全不同。机器人技术的机器学习工程师职位将要求候选人专注于基于神经网络的架构,而金融领域的机器学习任务将更多地专注于线性和逻辑回归算法。
机器学习面试绝对不是一场小测验,人们必须知道会发生什么。在我们之前的文章中,我们讨论了不同类型的大数据面试问题和数据科学面试问题,这些问题可能会在机器学习面试中被问到。分析性工作相关面试。这篇博文的主要重点是为未来的机器教学工程师提供一些在机器学习工作面试中可能会被问到的机器学习面试问题的技巧。
免责声明 – 不能保证本文中列出的机器学习面试问题会在机器学习工作面试中被问到。这些机器学习问题的目的是向读者提供有关机器学习职位申请人需要具备哪些知识的信息。
本文列出的大多数机器学习面试问题都没有一个好的答案,因为雇主希望评估候选人对特定主题的掌握程度,而不是寻找问题的正确答案。
机器学习面试题及答案
1)归纳机器学习和演绎机器学习有什么区别?
在归纳机器学习中,模型通过从一组观察到的实例中进行学习来得出概括的结论,而在演绎学习中,模型首先得出结论,然后再得出结论。让我们通过一个例子来理解这一点,例如,如果您必须向孩子解释玩火会导致烧伤。您可以通过两种方式向孩子们解释这一点,您可以向他们展示各种火灾事故的训练示例或烧伤人员的图像,并将其标记为“危险”。在这种情况下,孩子会在例子的帮助下学习,而不是玩火。这称为归纳机器学习。另一种方法是让你的孩子玩火,然后看看会发生什么。如果孩子被烧伤,他们会学会不要玩火,每当他们遇到火时,他们会避免靠近它。这称为演绎学习。
2) 您如何知道为您的分类问题选择哪种机器学习算法?
如果在决定机器学习算法时准确性是您主要关心的问题,那么最好的方法是测试几个不同的算法(通过在每个算法中尝试不同的参数)并通过交叉验证选择最佳的算法。为分类问题选择足够好的机器学习算法的一般经验法则是基于训练集的大小。如果训练集很小,那么使用朴素贝叶斯等低方差/高偏差分类器比 k 最近邻算法等高方差/低偏差分类器更有优势,因为它可能会过度拟合模型。当训练集规模增大时,高方差/低偏差分类器往往会获胜。
3) 为什么朴素贝叶斯机器学习算法是朴素的?
朴素贝叶斯机器学习算法被认为是朴素的,因为该算法所做的假设在现实生活数据中几乎不可能找到。条件概率计算为各个分量概率的纯乘积。这意味着,在给定类变量的情况下,算法假设类的特定特征的存在或不存在与任何其他特征的存在或不存在无关(特征的绝对独立性)。例如,如果一种水果是黄色、长且长度约为 5 英寸,则可以认为是香蕉。然而,如果这些特征相互依赖或基于其他特征的存在,则朴素贝叶斯分类器将假定所有这些属性独立地影响该水果是香蕉的概率。假设给定数据集中的所有特征都同等重要且独立,在现实场景中很少存在。
4)您将如何向外行人解释机器学习?
机器学习就是根据以前的任务经验做出决策,以提高其性能。有很多例子可以向外行人解释机器学习——
- 想象一个好奇的孩子伸出手掌
- 你从身边的人那里发现,肥胖的人往往容易患心脏病,因此你决定要努力保持苗条,否则可能会患上心脏病。您观察了大量数据并得出了一般的分类规则。
- 您正在玩二十一点,根据您看到的牌的顺序,您决定是要牌还是留下。在这种情况下,根据您之前掌握的信息并查看发生的情况,您可以快速做出决定。
5)列出一些重要的降维方法。
- 将特征与特征工程相结合。
- 使用某种形式的算法降维,例如 ICA 或 PCA。
- 删除共线特征以降低维度。â�<
6) 给您一个数据集,其中变量数量 (p) 大于观测值数量 (n) (p>n)。哪种技术最好用,为什么?
当变量的数量大于观测值的数量时,它代表一个高维数据集。在这种情况下,不可能计算唯一的最小二乘系数估计。在这些情况下,像 LARS、Lasso 或 Ridge 这样的惩罚回归方法似乎效果很好,因为它们倾向于缩小系数以减少方差。每当最小二乘估计具有较高方差时,岭回归技术似乎效果最好。
7)“买了这个的人也买了……”亚马逊上的推荐是哪种机器学习算法的结果?
推荐系统通常实现协同过滤机器学习算法,该算法考虑用户行为来向用户推荐产品。协作过滤机器学习算法通过评级、评论、交易历史、浏览历史、选择和购买信息来利用用户和产品的行为。
.8) 说出一些用于降维的特征提取技术。
- 独立成分分析
- 主成分分析
- 基于核的主成分分析
9) 列出一些可以使用分类机器学习算法的用例。
- 自然语言处理(最好的例子是口语理解)
- 市场细分
- 文本分类(垃圾邮件过滤)
- 生物信息学(根据功能对蛋白质进行分类)
- 欺诈识别
- 人脸检测
10)正则化解决什么样的问题?
正则化用于解决过度拟合问题,因为它通过添加权重向量 w 的 L1 (LASSO) 或 L2 (Ridge) 范数的倍数来惩罚损失函数。
11) 您将为训练、验证和测试集分配多少数据?
这个问题没有明确的答案,但在为训练、验证和测试集分配数据时需要保持平衡。
如果训练集太小,那么实际模型参数可能会有很大的方差。此外,如果测试集太小,则模型性能的估计可能不可靠。要遵循的一般经验法则是使用 80:20 的训练/测试分割。之后,训练集可以进一步分为验证集。
12)您更愿意选择哪一个——模型精度还是模型性能?
模型准确性只是模型性能的一个子集,但并不是模型性能的全部和最终目的。提出这个问题是为了测试您对模型准确性和模型性能之间完美平衡的了解程度。
13) 评估分类问题模型准确性的最常用指标是什么?
正确分类百分比 (PCC) 衡量整体准确性,无论所犯错误的类型如何,所有错误都被认为具有相同的权重。
14)什么时候你会使用分类而不是回归?
分类是关于识别群体成员资格,而回归技术涉及预测响应。这两种技术都与预测相关,其中分类预测属于一个类,而回归则预测连续集中的值。当模型的结果需要将数据集中数据点的归属性返回到特定的显式类别时,分类技术优于回归。 (例如,当您想找出一个名字是男性还是女性,而不是仅仅发现它们与男性和女性名字的相关性时。
15) 为什么 kNN 机器学习算法中不使用曼哈顿距离来计算最近邻之间的距离?
曼哈顿距离对尺寸有限制,计算垂直或水平距离。欧氏距离是 kNN 中计算最近邻之间距离的更好选择,因为数据点可以在任何空间中表示,没有任何维度限制。
16) 什么是受试者工作特征 (ROC) 曲线?它传达什么信息?
ROC 曲线是绘制真阳性率与假阳性率的图表。它显示分类算法在所有分类阈值下的性能。
它强调了敏感性和特异性之间的权衡,其中
灵敏度 = 真阳性率,特异性 = 1- 假阳性率。
指向图左角的曲线属于好的分类器。
17) 列出用于 K 均值聚类算法的一些距离。
1. 欧氏距离
2. 闵可夫斯基距离
3.汉明距离
4. 曼哈顿距离
5.切比雪夫距离
18) 考虑一个包含属于四个类别的要素的数据集。系统要求您使用逻辑回归作为分类算法来训练您的数据集。你认为这是个好主意吗?如果没有,您会建议使用哪种算法来完成该任务?
不,不建议使用 Logistic 回归进行多类分类,因为即使针对分离良好的类评估 Logistic 回归模型的估计系数,该模型也不稳定。
一个简单的替代方法是线性判别分析算法,它比多类分类的逻辑回归更稳定。
19) 二次判别分析(QDA)和线性判别分析(LDA)之间的主要区别是什么?
LDA 假定每个类中的特征形成多元高斯分布的一部分,具有特定于类的均值向量和所有 N 个类共享的协方差矩阵。然而,QDA 假设每个类都有自己的协方差矩阵。
20) 考虑两个类 A1 和 A2,其特征是使用高斯函数生成的。第一类特征变量的相关性为0.5,第二类特征变量的相关性为-0.5。以下哪项 - KNN、线性回归、QDA、LDA、KNN;您会优先用于对数据集进行分类吗?
二次判别分析将是完美的选择,因为它最适合类之间的决策边界适度非线性的情况。
21)机器学习中的正则化技术是什么?
在机器学习中,当我们尝试将一组“f”特征变量拟合到模型时,我们将与几个 f 特征变量相对应的模型系数缩小为零。这种收缩称为正则化。它是一种执行特征变量选择的方法。
22)两种最著名的正则化技术是什么?
两种最广泛使用的正则化技术是岭回归和套索回归。
23)什么是监督学习?
在监督学习中,我们使用数据集来训练机器学习模型,其中与每组特征变量相对应的目标值是已知的。
24) 区分 Ridge 回归和 Lasso 回归。
25)什么是无监督学习?
在无监督学习中,我们使用数据集训练机器学习模型,其中每组特征变量对应的目标值未知。因此,我们在特征变量空间中寻找模式并将相似的模式聚集在一起。
26)哪些算法可以同时用于分类和回归问题?
以下机器学习算法可用于分类和回归:
决策树、随机森林、神经网络。
27)为什么决策树中的递归二元分裂被称为 自上而下的贪婪 方法?
分裂技术被标记为自上而下,因为它从树的顶部(所有特征变量尚未分裂的点)开始,然后依次划分目标变量空间,每个划分由两个新分支进一步表示落在树上。
该技术也被标记为贪婪的。这是因为,在树生成过程的每个步骤中,都会在该特定步骤中确保最佳划分(或分割),而不是继续前进并选择在后续步骤中生成更好的树的分割。
28) 列出一些有监督和无监督的机器学习算法。
29)解释几种不同类型的分类算法。
30)概率和可能性有什么区别?
考虑一个随机实验,其所有可能的结果都是有限的。让 C 表示所有可能结果的样本空间。然后,事件 A(它是 C 的子集)的概率由下式给出:
然而,如果给出假设 H,则事件 A 的概率由下式给出:
其中 A 和 H 都是 C 的子集。因此,给定任何假设,这定义了可能结果集中任何成员的概率。它可以被视为 A 和 H 的函数,但对于某些特定的 H,通常单独用作 A 的函数。另一方面,给定事件的假设 H 的似然性 L(H|A)利息 A 与 P(A|H) 成正比,比例常数是任意的。这里的关键是,对于概率,A 是变量,H 是常数,而对于似然,H 是常数 A 的变量。
基于编程基础的机器学习面试问题
1) 如何一次性找到链表的中间元素?
在一次遍历中找到链表的中间元素意味着我们应该像在两次遍历的情况下一样遍历完整的链表两次。为了实现这个任务,我们可以使用两个指针:slw_ptr(慢指针)和fst_ptr(快指针)。如果慢指针读取链表的每个元素,并且让快指针的运行速度是慢指针的两倍,那么当快指针位于链表末尾时,慢指针将位于中间元素。
脚步:
-
创建两个指针 slw_ptr 和 fst_ptr 指向列表的第一个元素。
-
将指针 fast_ptr 移动两步,将指针 Slow_ptr 向前移动一步,直到 fast_ptr 到达字符串末尾。
-
返回slow_ptr指针指向的值。
2)编写代码打印树的InOrder遍历。
以下函数将打印 C++ 中树的 InOrder 遍历:
void printInorder(struct Node* 节点)
{
if (节点 == NULL)
返回;
printInorder(节点->左);
cout << 节点->数据 << " ";
printInorder(节点->右);
}
特定角色的开放式机器学习面试问题
1) 给定一个特定的机器学习模型,它解决什么类型的问题,该模型对数据做出什么假设,以及为什么它最适合特定类型的问题?
2)给定的机器学习模型是否证明过度拟合?如果是这样,你能对此做什么?
3)机器学习模型处理什么类型的数据——分类数据、数值数据等?
4)给定的机器学习模型的可解释性如何?
5)如果训练结果准确率很低,你会怎么做?
6)开发的机器学习模型是否存在收敛问题?
7)您最喜欢哪种机器学习算法?为什么它是您最喜欢的?您将如何向外行人解释该机器学习算法?
8) 您将采用什么方法来推荐 Twitter 上的关注者?
9) 如何在 Bing 上生成相关搜索?
10)您使用哪些工具和环境来训练和评估机器学习模型?
11) 如果你在简历中声称你了解推荐系统,那么你可能会被要求详细解释 PLSI 和 SVD 模型。
12)你将如何将机器学习应用于图像?
顶尖科技公司机器学习面试问题
亚马逊机器学习面试问题
1) 如何在天平上称 9 颗弹珠 3 次,找出最重的一颗?
假设所有的弹珠看起来都一样,重量也一样,除了比每一颗弹珠稍重一点的弹珠。
这可以通过以下方式实现:
-
将 9 个弹珠分成三组。
-
第一次使用天平将检查哪组包含最重的弹珠。
如果两组体重相同,则天平将保持平衡。这意味着未放在秤上的组具有最重的元素。然而,如果天平秤偏向所选择的两个组中的任何一个,则也将很容易识别出具有最重元素的组。 -
现在您已经有了一组包含最重元素的三个弹珠,接下来的任务就是识别最重的弹珠。为此,您可以使用与上述步骤相同的逻辑来确定哪个是最重的弹珠。
2)为什么梯度检查很重要?
在神经网络机器学习算法中,我们使用反向传播算法来识别给定数据集的正确权重。当反向传播算法与梯度下降一起使用时,即使代码中存在错误,代码也有可能显示损失函数随着每次迭代而减小。因此,实施梯度检查以确保计算机在每次迭代后评估正确的导数非常重要。
3)什么是神经网络中的损失函数?
神经网络机器学习算法中的损失函数是梯度下降算法用来计算梯度的函数。它在配置机器学习模型中发挥着重要作用。
4) 哪一种更好——随机权重分配或为隐藏层中的单元分配相同的权重?
对于神经网络的隐藏层,为该层的每个单元分配随机权重比为其分配相同的权重更好。这是因为如果我们对每个单元使用相同的权重,那么所有单元将生成相同的输出并降低熵。因此,我们应该始终使用能够打破对称性并快速达到成本函数最小值的随机权重。
5) 您将如何设计垃圾邮件过滤器?
可以通过使用垃圾邮件和非垃圾邮件来训练神经网络来设计垃圾邮件过滤器。当然,在向网络提供电子邮件之前,必须通过文本处理技术将文本数据转换为数字。
6)解释MLE和MAP推理之间的区别。
7) 给定一个数字,如何在一系列浮点数据中找到最接近的数字?
8)什么是提升?
Boosting 是一种常用于提高决策树机器学习算法性能的技术。在 Boosting 中,每棵树都是使用先前评估的树的信息创建的。 Boosting 涉及缓慢学习数据集,而不是通过严格拟合数据集来创建单个大型决策树。在Boosting中,我们使用当前残差代替目标变量Y来拟合决策树。然后,我们将这个新的决策树添加到拟合函数中以更新残差。
百度机器学习面试问题
1)各种机器学习算法中梯度下降收敛慢或不收敛的原因是什么?
梯度下降算法收敛缓慢或根本不收敛的一些原因是:
-
成本函数可能不是凸函数。
-
选择不合适的值来初始化后期学习。如果学习率太高,步长会振荡,达不到全局最小值。而且,如果学习率太低,梯度下降算法可能需要永远才能达到全局最小值。
2)给定一个目标函数,计算其学习率的范围。
计算目标函数学习率范围的一个好方法是从低学习率开始训练网络,然后以指数方式增加每个批次的学习率。然后,应该存储与每个学习率值相对应的损失值,然后将其绘制出来以可视化哪个学习率范围对应于损失函数的快速下降。
3)如果梯度下降不收敛,可能是什么问题?
4)如何检查二叉搜索树是否有效?
Spotify 机器学习面试问题
1)解释BFS(广度优先搜索算法)
2) 您如何判断我们目录中的歌曲是否重复?
3)您最喜欢的机器学习算法是什么?为什么?
4) 给定歌曲列表和元数据,消除同名艺术家的歧义。
5) 您将如何对数据流进行采样以使分布与真实数据相匹配?
第一资本提出的机器学习面试问题
1) 给定两年的交易历史,您将使用哪些特征来预测信用风险?
2)区分梯度提升树和随机森林机器学习算法。
3)您将如何利用现有功能添加新功能?
4) 考虑到您有 100 个数据点,并且您必须预测客户的性别。可能会出现哪些困难?
5)您将如何设置信用卡欺诈检测模型的阈值?
机器学习面试是一个复合过程,面试的最终结果是由多种因素决定的,而不仅仅是看候选人给出的正确答案的数量。如果你真的想要这份机器学习工作,那么当你练习多种方法来回答上面列出的机器学习面试问题时,需要时间和奉献精神,但希望这是一种令人愉快的类型。借助这些问题,您将学到很多东西并获得大量知识,为下一次机器学习面试做好准备。
本博客更新的机器学习面试问题是从各种来源收集的,例如数据科学家的实际面试经历、Quora、Facebook、求职门户和其他论坛上的讨论等。为了为本博文做出贡献并帮助学习社区,请随时在下面的评论部分提出您的问题。
请继续关注此博客,了解有关机器学习面试问题和答案的更多更新!