如果你想在数据科学领域找到一份工作,你需要通过一个严格的、竞争激烈的面试过程。事实上,大多数顶级公司会有至少3轮的面试。
在这个过程中,你将接受各种技能的测试,包括。
- 你的技术和编程能力
- 你为开放式问题构建解决方案的能力
- 你有效应用机器学习的能力
- 你用一系列方法分析数据的能力
- 你的沟通能力、文化适应性等。
- 以及你对数据科学和机器学习的关键概念的掌握(←这是本帖的重点)
在这篇文章中,我们将提供一些机器学习面试问题和答案的例子。但在我们开始讨论之前,有2个重要的说明。
- 这并不意味着是一个详尽的列表,而是对你可能期望的东西的一个预览。
- 这些答案是为了简洁地提醒你。如果你是第一次看到一个概念,你需要多加研究,以便使答案有意义。
以下问题分为9大主题。
1.大画面
基本的ML理论,如偏差-变异权衡。
1.1 - 什么是参数化模型?举个例子。
参数化模型是那些具有有限数量参数的模型。为了预测新数据,你只需要知道模型的参数。例子包括线性回归、逻辑回归和线性SVMs。
非参数模型是那些参数数量不受限制的模型,允许更多的灵活性。为了预测新的数据,你需要知道模型的参数和已经观察到的数据的状态。这方面的例子包括决策树、K-近邻和使用潜伏狄里切特分析的主题模型。
1.2 什么是 "维度的诅咒"?
当你有更多的特征(维度)时,搜索一个解决方案空间的难度就会变得更大。
考虑一下在一条线上寻找一个便士与在田野上寻找一个建筑物的比喻。你拥有的维度越多,你需要的数据量就越大。
1.3 - 解释偏差-变异的权衡。
预测模型在偏差(模型对数据的拟合程度)和方差(模型在输入变化的基础上的变化程度)之间有一个权衡。
简单的模型是稳定的(低方差),但它们不接近真相(高偏差)。
更复杂的模型更容易被过度拟合(高方差),但它们有足够的表现力来接近真相(低偏差)。
对于一个给定的问题,最好的模型通常在中间的某个地方。
2.优化
为一个模型寻找最佳参数的算法。
2.1 随机梯度下降(SGD)和梯度下降(GD)的区别是什么?
这两种算法都是通过对照数据评估参数,然后进行调整,找到一组能使损失函数最小的参数的方法。
在标准梯度下降法中,你将对每组参数的所有训练样本进行评估。这类似于向解决方案迈出大而缓慢的步伐。
在随机梯度下降法中,在更新参数之前,你将只对参数集的一个训练样本进行评估。这类似于向解决方案迈出了小而快的步伐。
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 - 降低维度的三种方法是什么?
- 去除相邻的特征。
- 进行PCA、ICA或其他形式的算法降维。
- 将特征与特征工程相结合。
4.采样和拆分
如何分割你的数据集以调整参数并避免过度拟合。
4.1 -你应该为你的训练、验证和测试集分配多少数据?
你必须找到一个平衡点,对每个问题都没有正确的答案。
如果你的测试集太小,你就会对模型的性能有一个不可靠的估计(性能统计数字会有很高的方差)。如果你的训练集太小,你的实际模型参数就会有高方差。
一个好的经验法则是使用80/20的训练/测试比例。然后,你的训练集可以进一步分成训练/验证或者分成交叉验证的分区。
4.2 - 如果你把数据分成训练/测试两部分,是否还有可能过度拟合你的模型?
是的,这绝对是可能的。一个常见的初学者错误是在看到一个模型在测试集上的表现后,重新调整该模型或用不同的参数训练新模型。
在这种情况下,导致过拟合的是模型选择过程。在你准备进行最后的选择之前,测试集不应该被玷污。
5.监督学习
使用分类和回归模型从标记的数据中学习。
5.1 决策树的优点和缺点是什么?
优点。决 策树很容易解释,非参数化(这意味着它们对异常值很稳健),而且需要调整的参数相对较少。
劣势。决 策树很容易被过度拟合。然而,这可以通过随机森林或提升树等集合方法来解决。
5.2 神经网络的优势和劣势是什么?
优点。神 经网络(特别是深度神经网络)已经为图像、音频和视频等非结构化数据集带来了性能上的突破。它们惊人的灵活性使它们能够学习其他ML算法无法学习的模式。
劣势。然而,它们需要大量的训练数据来收敛。挑选正确的架构也很困难,而且内部的 "隐藏 "层是不可理解的。
5.3 如何根据训练集的大小来选择分类器?
如果训练集很小,高偏差/低方差模型(如Naive Bayes)往往表现更好,因为它们不太可能过拟合。
如果训练集很大,低偏差/高方差模型(如Logistic Regression)往往表现更好,因为它们能反映更复杂的关系。
6.无监督学习
使用因子和聚类分析模型从未标记的数据中学习。
6.1 解释Latent Dirichlet Allocation(LDA)。
Latent Dirichlet Allocation(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 (S-a-a-S创业公司|零售银行|电子商务网站)的关键业务指标有哪些?
思考关键业务指标,通常简称为KPI(关键绩效指标),是数据科学家工作的一个重要部分。这里有几个例子,但你应该练习自己的头脑风暴。
提示:当有疑问时,从 "这个企业是如何赚钱的 "这个更简单的问题开始。
- S-a-a-S创业公司。客户终身价值、新账户、账户寿命、流失率、使用率、社交分享率
- 零售银行。线下线索、线上线索、新账户(按账户类型划分)、风险因素、产品亲和力
- 电子商务。产品销售、平均购物车价值、购物车放弃率、电子邮件线索、转换率
9.2 你们如何帮助我们的营销团队更有效率?
答案将取决于公司的类型。这里有一些例子。
- 聚类算法,为每种类型的营销活动建立定制的客户群。
- 对标题进行自然语言处理,在运行广告支出之前预测业绩。
- 根据用户的网站行为预测转换概率,以便创建更好的重定向活动。
你的表现如何?有没有什么概念是你不熟悉的?如果你发现你的知识有任何差距,一定要花一些额外的时间来准备!