热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【机器学习】21个机器学习面试问答

如果您希望获得数据科学的工作,您需要通过严格且有竞争力的面试流程。事实上,大多数顶级公司将至少进行3轮面试。在此过程中,您将接受各种技能

如果您希望获得数据科学的工作,您需要通过严格且有竞争力的面试流程。事实上,大多数顶级公司将至少进行3轮面试。

在此过程中,您将接受各种技能的测试,包括:


  • 您的技术和编程技巧
  • 您能够为开放式问题构建解决方案
  • 您有效应用机器学习的能力
  • 您使用各种方法分析数据的能力
  • 您的沟通技巧,文化适应性等
  • 你掌握了数据科学和机器学习中的关键概念(←这是本文的重点)

在这篇文章中,我们将提供机器学习面试问题和答案的一些例子。但在我们接触它们之前,有两个重要的注意事项:


  1. 这并不是一个详尽的列表,而是您可能期望的预览。
  2. 答案是为您提供简明的提醒。如果这是您第一次看到这个概念,那么您需要对其进行更多研究才能使答案有意义。

以下问题在9个主要主题中被打破。


  1. 大图
  2. 优化
  3. 数据预处理
  4. 采样和拆分
  5. 监督学习
  6. 无监督学习
  7. 模型评估
  8. 合奏学习
  9. 商业应用

大å¾


1.大图

必要的ML理论,例如Bias-Variance权衡。

1.1 - 什么是参数模型?举个例子。

参数模型是具有有限数量参数的模型。要预测新数据,您只需要知道模型的参数。示例包括线性回归,逻辑回归和线性SVM。

非参数模型是具有无限数量参数的模型,允许更大的灵活性。要预测新数据,您需要知道模型的参数和已观察到的数据的状态。示例包括决策树,k-最近邻居和使用潜在Dirichlet分析的主题模型。


  • 了解有关参数模型与非参数模型的更多信息

1.2 - 什么是“维度的诅咒?”

由于您拥有更多功能(维度),因此搜索解决方案空间的难度变得更加困难。

考虑一下在线上寻找一分钱而不是在建筑物中的比喻。您拥有的维度越多,您需要的数据量就越大。


  • 了解有关维度诅咒的更多信息(以及缩小尺寸)

1.3 - 解释偏差 - 方差权衡。

预测模型在偏差(模型与数据的拟合程度)和方差(模型根据输入变化的变化程度)之间进行权衡。

更简单的模型是稳定的(低方差),但它们并不接近事实(高偏差)。

复杂的模型更容易过度拟合(高变异),但它们足够表达以接近事实(低偏差)。

针对特定问题的最佳模型通常位于中间位置。


  • 了解有关偏差 - 方差权衡的更多信息

优化


2.优化

用于查找模型的最佳参数的算法。

2.1 - 随机梯度下降(SGD)和梯度下降(GD)之间有什么区别?

两种算法都是通过评估参数对数据然后进行调整来找到一组参数的方法,这些参数最小化损失函数。

在标准梯度下降中,您将评估每组参数的所有训练样本。这类似于朝着解决方案采取大而缓慢的步骤。

在随机梯度下降中,在更新之前,您将仅为该组参数评估1个训练样本。这类似于为解决方案采取小而快速的步骤。


  • 了解有关SGD与GD的更多信息

2.2 - 你什么时候使用GD而不是SDG,反之亦然?

GD理论上最小化误差函数比SGD更好。但是,一旦数据集变大,SGD会收敛得更快。

这意味着GD适用于小型数据集,而SGD适用于较大的数据集。

然而,在实践中,SGD用于大多数应用程序,因为它可以很好地最小化错误功能,同时对于大型数据集来说速度更快,内存效率更高。

 

 

数据预处理


3.数据预处理

处理丢失的数据,偏差的分布,异常值等。

3.1 - Box-Cox转换用于什么?

Box-Cox变换是一种广义的“功率变换”,它可以转换数据以使分布更加正常。

例如,当其lambda参数为0时,它等同于对数转换。

它用于稳定方差(消除异方差性)并使分布正常化。


  • 了解有关Box-Cox转型的更多信息

3.2 - 处理异常值的3种数据预处理技术是什么?


  1. Winsorize(上限为阈值)。
  2. 转换以减少偏斜(使用Box-Cox或类似方法)。
  3. 如果您确定它们是异常或测量错误,请删除异常值。

3.3 - 减少维数的3种方法有哪些?


  1. 删除共线功能。
  2. 执行PCA,ICA或其他形式的算法降维。
  3. 将功能与功能工程相结合。
    • 详细了解功能工程最佳实践

 

 

采样和拆分


4.采样和拆分

如何拆分数据集以调整参数并避免过度拟合。

4.1 - 您应该为培训,验证和测试集分配多少数据?

你必须找到一个平衡点,并且每个问题都没有正确答案。

如果您的测试集太小,您将对模型性能进行不可靠的估计(性能统计将具有高差异)。如果您的训练集太小,您的实际模型参数将具有高差异。

一个好的经验法则是使用80/20列车/测试分割。然后,您的火车组可以进一步分为列车/验证或分区进行交叉验证。


  • 查看Python中的示例

4.2 - 如果您将数据拆分为列车/测试拆分,是否仍然可以过度使用您的模型?

是的,这绝对是可能的。一个常见的初学者错误是在看到测试集上的性能后重新调整模型或训练具有不同参数的新模型。

在这种情况下,它的模型选择过程会导致过度拟合。在您准备好进行最终选择之前,测试集不应该被污染。


  • 了解有关机器学习中过度拟合的更多信息

 

 

监督学习


5.监督学习

使用分类和回归模型从标记数据中学习。

5.1 - 决策树有哪些优点和缺点?

优点: 决策树易于解释,非参数(这意味着它们对异常值具有鲁棒性),并且调整的参数相对较少。

缺点: 决策树容易过度。但是,这可以通过随机森林或增强树等集合方法来解决。


  • 现代机器学习算法概述

5.2 - 神经网络的优点和缺点是什么?

优点: 神经网络(特别是深度NN)已经为非结构化数据集(如图像,音频和视频)带来了性能突破。它们令人难以置信的灵活性使他们能够学习其他ML算法无法学习的模式。

缺点:但是,它们需要大量的训练数据才能收敛。选择正确的架构也很困难,内部的“隐藏”层也难以理解。

5.3 - 如何根据训练集大小选择分类器?

如果训练集较小,则高偏差/低方差模型(例如朴素贝叶斯)往往表现更好,因为它们不太可能过度拟合。

如果训练集很大,低偏差/高方差模型(例如Logistic回归)往往表现更好,因为它们可以反映更复杂的关系。

 

 

无监督学习


6.无监督学习

使用因子和聚类分析模型学习未标记的数据。

6.1 - 解释潜在Dirichlet分配(LDA)。

潜在Dirichlet分配(LDA)是主题建模的常用方法,或按主题对文档进行分类。

LDA是一种生成模型,它将文档表示为主题的混合,每个主题都有自己的可能单词概率分布。

“Dirichlet”分布只是分布的分布。在LDA中,文档是作为单词分布的主题的分布。


  • Dirichlet分布的直观解释

6.2 - 解释主成分分析(PCA)。

PCA是一种通过将数据组合成不相关的线性组合来转换数据集中的要素的方法。

这些新特征或主成分依次最大化所表示的方差(即第一主成分具有最大方差,第二主成分具有第二多,等等)。

因此,PCA可用于降低维数,因为您可以设置任意方差截止值。


  • 了解有关PCA的更多信息

 

 

模型评估


7.模型评估

根据各种绩效指标做出决策。

7.1 - 什么是ROC曲线,什么是AUC(又名AUROC)?

ROC(接收器工作特性)真实阳性率(y轴)与假阳性率(x 
轴)的二元分类器的性能图。

AUC是ROC曲线下的面积,它是评估二元分类模型的通用性能指标。

它等于均匀绘制的随机正数在均匀绘制的随机负数之前排序的预期概率。


  • 了解有关ROC曲线的更多信息

7.2 - 为什么ROC曲线下面积(AUROC)优于原始精度作为样本外评估指标?

与原始精确度不同,AUROC对类不平衡具有很强的鲁棒性。

例如,如果您想要检测仅在1%人口中普遍存在的癌症类型,您可以通过简单地对每个人进行无癌症分类来建立一个达到99%准确度的模型。


  • 了解有关机器学习中的类不平衡的更多信息

 

 

合奏学习


8.合奏学习

结合多个模型以获得更好的性能。

8.1 - 为什么集合方法优于单个模型?

他们平均偏差,减少差异,并且不太可能过度拟合。

机器学习中有一个共同点:“合奏并获得2%”。

这意味着您可以像往常一样构建模型,并且通常期望通过集成来提高性能。

8.2 - 解释装袋。

Bagging或Bootstrap Aggregating是一种集合方法,其中数据集首先通过重新采样分成多个子集。

然后,每个子集用于训练模型,最终预测通过投票或平均组件模型来完成。

套袋是并行进行的。


  • 了解有关机器学习中的装袋,增强和堆叠的更多信息

 

 

商业应用


9.商业应用

机器学习如何帮助不同类型的企业。

9.1 - (SaaS启动|零售银行|电子商务网站)有哪些关键业务指标?

考虑关键业务指标(通常缩短为KPI(关键绩效指标))是数据科学家工作的重要组成部分。以下是一些例子,但你应该练习集思广益。

提示:如果有疑问,请从“这个企业如何赚钱?”这个简单的问题开始。


  • SaaS启动:客户终生价值,新帐户,帐户生命周期,流失率,使用率,社会分享率
  • 零售银行:离线销售线索,在线销售线索,新账户(按账户类型划分),风险因素,产品亲和力
  • 电子商务:产品销售,平均购物车价值,购物车放弃率,电子邮件潜在客户,转换率

9.2 - 您如何帮助我们的营销团队提高效率?

答案取决于公司的类型。这里有些例子。


  • 聚类算法为每种类型的营销活动构建自定义客户群。
  • 标题的自然语言处理,用于在投放广告支出之前预测效果。
  • 根据用户的网站行为预测转化概率,以便创建更好的重新定位广告系列。


你怎么做的?是否有任何您不熟悉的概念?如果您发现任何差距,请务必花些时间准备!

 

原文:https://elitedatascience.com/machine-learning-interview-questions-answers


推荐阅读
  • 1、DashAPI文档Dash是一个API文档浏览器,使用户可以使用离线功能即时搜索无数API。程序员使用Dash可访问iOS,MacOS, ... [详细]
  • 支持向量机训练集多少个_25道题检测你对支持向量机算法的掌握程度
    介绍在我们学习机器算法的时候,可以将机器学习算法视为包含刀枪剑戟斧钺钩叉的一个军械库。你可以使用各种各样的兵器,但你要明白这些兵器是需要在合适的时间合理 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • cs231n Lecture 3 线性分类笔记(一)
    内容列表线性分类器简介线性评分函数阐明线性分类器损失函数多类SVMSoftmax分类器SVM和Softmax的比较基于Web的可交互线性分类器原型小结注:中文翻译 ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • 机器学习——KMeans算法
    相似度或距离假设有$m$个样本,每个样本由$n$个属性的特征向量组成,样本合集可以用矩阵$X$表示$X[x_{ij}]_{mn}\begin{bmatrix}x_{11}& ... [详细]
  • 入门Java需熟练掌握哪些技术呢?
    Java工程师无疑是当下令人艳羡的工作之一,因此,每年都有大批大批的朋友想要报名Java工程师学习Java也就不奇怪了。那么入门Java掌握哪些技术能力 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有