如果您希望获得数据科学的工作,您需要通过严格且有竞争力的面试流程。事实上,大多数顶级公司将至少进行3轮面试。
在此过程中,您将接受各种技能的测试,包括:
- 您的技术和编程技巧
- 您能够为开放式问题构建解决方案
- 您有效应用机器学习的能力
- 您使用各种方法分析数据的能力
- 您的沟通技巧,文化适应性等
- 你掌握了数据科学和机器学习中的关键概念(←这是本文的重点)
在这篇文章中,我们将提供机器学习面试问题和答案的一些例子。但在我们接触它们之前,有两个重要的注意事项:
- 这并不是一个详尽的列表,而是您可能期望的预览。
- 答案是为您提供简明的提醒。如果这是您第一次看到这个概念,那么您需要对其进行更多研究才能使答案有意义。
以下问题在9个主要主题中被打破。
- 大图
- 优化
- 数据预处理
- 采样和拆分
- 监督学习
- 无监督学习
- 模型评估
- 合奏学习
- 商业应用
1.大图
必要的ML理论,例如Bias-Variance权衡。
1.1 - 什么是参数模型?举个例子。
参数模型是具有有限数量参数的模型。要预测新数据,您只需要知道模型的参数。示例包括线性回归,逻辑回归和线性SVM。
非参数模型是具有无限数量参数的模型,允许更大的灵活性。要预测新数据,您需要知道模型的参数和已观察到的数据的状态。示例包括决策树,k-最近邻居和使用潜在Dirichlet分析的主题模型。
1.2 - 什么是“维度的诅咒?”
由于您拥有更多功能(维度),因此搜索解决方案空间的难度变得更加困难。
考虑一下在线上寻找一分钱而不是在建筑物中的比喻。您拥有的维度越多,您需要的数据量就越大。
1.3 - 解释偏差 - 方差权衡。
预测模型在偏差(模型与数据的拟合程度)和方差(模型根据输入变化的变化程度)之间进行权衡。
更简单的模型是稳定的(低方差),但它们并不接近事实(高偏差)。
更复杂的模型更容易过度拟合(高变异),但它们足够表达以接近事实(低偏差)。
针对特定问题的最佳模型通常位于中间位置。
2.优化
用于查找模型的最佳参数的算法。
2.1 - 随机梯度下降(SGD)和梯度下降(GD)之间有什么区别?
两种算法都是通过评估参数对数据然后进行调整来找到一组参数的方法,这些参数最小化损失函数。
在标准梯度下降中,您将评估每组参数的所有训练样本。这类似于朝着解决方案采取大而缓慢的步骤。
在随机梯度下降中,在更新之前,您将仅为该组参数评估1个训练样本。这类似于为解决方案采取小而快速的步骤。
2.2 - 你什么时候使用GD而不是SDG,反之亦然?
GD理论上最小化误差函数比SGD更好。但是,一旦数据集变大,SGD会收敛得更快。
这意味着GD适用于小型数据集,而SGD适用于较大的数据集。
然而,在实践中,SGD用于大多数应用程序,因为它可以很好地最小化错误功能,同时对于大型数据集来说速度更快,内存效率更高。
3.数据预处理
处理丢失的数据,偏差的分布,异常值等。
3.1 - Box-Cox转换用于什么?
Box-Cox变换是一种广义的“功率变换”,它可以转换数据以使分布更加正常。
例如,当其lambda参数为0时,它等同于对数转换。
它用于稳定方差(消除异方差性)并使分布正常化。
3.2 - 处理异常值的3种数据预处理技术是什么?
- Winsorize(上限为阈值)。
- 转换以减少偏斜(使用Box-Cox或类似方法)。
- 如果您确定它们是异常或测量错误,请删除异常值。
3.3 - 减少维数的3种方法有哪些?
- 删除共线功能。
- 执行PCA,ICA或其他形式的算法降维。
- 将功能与功能工程相结合。
4.采样和拆分
如何拆分数据集以调整参数并避免过度拟合。
4.1 - 您应该为培训,验证和测试集分配多少数据?
你必须找到一个平衡点,并且每个问题都没有正确答案。
如果您的测试集太小,您将对模型性能进行不可靠的估计(性能统计将具有高差异)。如果您的训练集太小,您的实际模型参数将具有高差异。
一个好的经验法则是使用80/20列车/测试分割。然后,您的火车组可以进一步分为列车/验证或分区进行交叉验证。
4.2 - 如果您将数据拆分为列车/测试拆分,是否仍然可以过度使用您的模型?
是的,这绝对是可能的。一个常见的初学者错误是在看到测试集上的性能后重新调整模型或训练具有不同参数的新模型。
在这种情况下,它的模型选择过程会导致过度拟合。在您准备好进行最终选择之前,测试集不应该被污染。
5.监督学习
使用分类和回归模型从标记数据中学习。
5.1 - 决策树有哪些优点和缺点?
优点: 决策树易于解释,非参数(这意味着它们对异常值具有鲁棒性),并且调整的参数相对较少。
缺点: 决策树容易过度。但是,这可以通过随机森林或增强树等集合方法来解决。
5.2 - 神经网络的优点和缺点是什么?
优点: 神经网络(特别是深度NN)已经为非结构化数据集(如图像,音频和视频)带来了性能突破。它们令人难以置信的灵活性使他们能够学习其他ML算法无法学习的模式。
缺点:但是,它们需要大量的训练数据才能收敛。选择正确的架构也很困难,内部的“隐藏”层也难以理解。
5.3 - 如何根据训练集大小选择分类器?
如果训练集较小,则高偏差/低方差模型(例如朴素贝叶斯)往往表现更好,因为它们不太可能过度拟合。
如果训练集很大,低偏差/高方差模型(例如Logistic回归)往往表现更好,因为它们可以反映更复杂的关系。
6.无监督学习
使用因子和聚类分析模型学习未标记的数据。
6.1 - 解释潜在Dirichlet分配(LDA)。
潜在Dirichlet分配(LDA)是主题建模的常用方法,或按主题对文档进行分类。
LDA是一种生成模型,它将文档表示为主题的混合,每个主题都有自己的可能单词概率分布。
“Dirichlet”分布只是分布的分布。在LDA中,文档是作为单词分布的主题的分布。
6.2 - 解释主成分分析(PCA)。
PCA是一种通过将数据组合成不相关的线性组合来转换数据集中的要素的方法。
这些新特征或主成分依次最大化所表示的方差(即第一主成分具有最大方差,第二主成分具有第二多,等等)。
因此,PCA可用于降低维数,因为您可以设置任意方差截止值。
7.模型评估
根据各种绩效指标做出决策。
7.1 - 什么是ROC曲线,什么是AUC(又名AUROC)?
ROC(接收器工作特性)真实阳性率(y轴)与假阳性率(x
轴)的二元分类器的性能图。
AUC是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