来源 :CDO之家
全文共 3221个字,建议阅读需 8 分钟
随着我们步入技术驱动数据的新时代,我们发现自己在数据领域面临着大量的可能性。数据科学是一个竞争非常激烈的就业市场,因此很难找到一份好工作。只有最优秀的内线人员才有机会接受职位面试和录用。为这种情况 做好准备很重要。
用于数据科学面试的格式因公司而异。面试最常涉及与 SQL、机器学习和 Python 相关的问题,但当然也有基于场景的问题、编程知识测试和软技能测试。
本文的目的是为您提供数据科学领域从业者提供的 12 个数据科学场景面试题的概览。练习以下数据科学面试问题可以让你比竞争对手更有优势。
让我们来看看。
数据科学工作的基于场景的面试问题:
1. 考虑使用 20 GB 的数据集训练您的神经网络。您的 RAM 为 3 GB,您将如何解决训练大型数据集的问题?
解决方案:以下是我们将如何用有限的内存训练我们的神经网络。
-
首先,我们将所有数据加载到 NumPy 数组中。 -
接下来,我们通过传递索引从 NumPy 数组中获取数据。 -
然后将这些数据传递到我们的神经网络并进行小批量训练。
2. 训练数据集的特征可以达到 100% 的准确率,但是当数据集被验证时,它会达到 75% 的准确率。你应该注意什么?
解决方案:在达到 100% 的训练准确率后,我们的模型需要进行过拟合筛选。当模型过拟合时,它会学习与其训练数据相关的细节和噪声,从而对其在新数据集上的性能产生不利影响。因此,验证模型是否过拟合势在必行。
3. 以使用文本数据训练机器学习模型为例。创建的文档矩阵中包含大约 200K 文档。如果你想减少数据维度,你有什么技术?
解决方案:我们可以使用以下三种技术中的任何一种来减少数据的维度,具体取决于我们更喜欢哪一种:
-
潜在狄利克雷分配。 -
潜在语义索引。 -
关键字规范化。
4. PCA(主成分分析)是否需要旋转?如果是这样,为什么?如果组件不旋转,会发生什么?
解决方案: 事实上,为了最大化每个组件捕获的方差,旋转(正交)是必要的。以这种方式可以更容易地解释组件。此外,这也是 PCA 打算做的事情,我们选择比特征更少的组件来解释数据集中的最大方差。旋转不会改变组件的相对位置,只会改变它们的坐标。如果不旋转组件,PCA 的影响会减弱,因此我们将被迫选择更多的组件来解释数据集中的差异。
5. 假设给你一个数据集。数据集中存在与中位数相差 1 个标准差的缺失值。有多少数据不会受到影响?什么原因?
解决方案: 为了让您开始,这个问题包含足够的提示。考虑到数据跨越中位数,我们假设它是一个正态分布。正态分布中大约 68% 的数据位于均值(或众数、中位数)的 1 个标准差范围内,剩下 32% 未受影响。因此,缺失值不会影响 32% 的数据。
6. 是什么让朴素贝叶斯如此幼稚?
解决方案:朴素贝叶斯如此“朴素”的主要原因是它假设所有数据特征都同等重要且彼此独立。在现实世界的情况下,这些假设很少成立。
7. 想象一下,您发现您的模型具有低偏差和高方差。哪种算法最适合这个问题?什么原因?
解决方案: 低偏差是指模型的预测值接近实际值。因此,该模型变得足够灵活,能够在未来复制训练数据的分布。尽管这似乎是一项伟大的成就,但您必须记住,灵活的模型不能一概而论。这意味着该模型在看不见的数据上表现不佳。
我们可以使用装袋算法(例如随机森林)解决高方差问题。使用 bagging 算法,数据集被划分为通过重复随机抽样得出的子集。在此之后,使用单个学习算法来构建基于这些样本的一组模型。之后,使用平均(回归)或投票(分类)来组合模型预测。还可以采取以下措施来应对高方差:
-
通过使用正则化降低模型复杂性,其中高模型系数会受到惩罚。 -
考虑变量重要性图表的前 n 个特征。考虑到数据集中的所有变量,算法可能难以找到有意义的信号。
8. 假设给你一个数据集。数据集中有很多变量,其中一些是高度相关的,你知道这一点。您的经理已要求您运行 PCA。您认为首先删除相关变量会更好吗?什么原因?
解决方案:你很有可能会想回答“不”,但这不是正确的答案。相关变量的缺失对 PCA 有很大贡献,因为当相关变量存在时,由特定成分解释的方差会被夸大。一个例子可能是一个包含三个变量的数据集,其中两个是相关的。该数据集的 PCA 将展示两倍于不相关变量的 PCA 的方差。此外,添加相关变量会使 PCA 更加关注这些变量,这可能会产生误导。
9. 考虑一个基于 1,000 列和 100 万行的分类问题的训练数据集。您的经理已要求您减少此数据的维度,以减少模型的计算时间。您的机器存在内存限制。你会如何回应?(你可以自由地做出实际的假设。)
解决方案:在内存有限的机器上管理高维数据是一项挑战。这对你的面试官来说是显而易见的。您可以通过以下方式处理这种情况:
-
由于我们的 RAM 较少,我们应该关闭机器中的所有其他程序,包括我们的 Web 浏览器,以便充分利用 RAM。 -
数据集可以随机抽样。本质上,我们可以创建一个较小的数据集,比如 1000 个变量和 300000 行,并在其上进行计算。 -
我们可以通过分离数值变量和分类变量并删除相关的变量来降低维度。在数值变量的情况下,我们将使用相关性。我们将对分类变量使用卡方检验。 -
此外,我们可以使用 PCA 来识别解释最大差异的组件。 -
在线学习算法,例如 Vowpal Wabbit(在 Python 中可用)可能是一个不错的选择。 -
随机梯度下降法也可用于构建线性模型。 -
此外,我们可以使用我们的业务理解来估计哪些预测变量可能会影响响应变量。然而,这是一种直观的方法。如果没有识别出有用的预测因子,信息的丢失可能会很严重。
注意:一定要阅读随机梯度下降和在线学习算法。
10. 假设给你一个关于癌症检测的数据集。你必须建立一个分类模型并达到 96% 的准确率。是什么让您认为您的模型的性能不令人满意?你有什么可以做的吗?
解决方案:在研究了足够多的数据集之后,癌症检测产生不平衡的结果似乎很明显。在高度不平衡的数据集的情况下,它不应该用于衡量性能,因为 96%(如给定的)可能只正确预测了大多数类别,但我们主要关注的是少数类别(4%)那些实际上被诊断出患有癌症的人。为了评估分类器的分类性能,我们应该使用特异性(True Negative Rate)、灵敏度(True Positive Rate)和 F 度量。如果少数类表现不佳,可以采取以下步骤:
-
在使数据平衡的可用方法中,我们可以使用欠采样、过采样或 SMOTE(合成少数过采样技术)。 -
可以通过概率校准来调整预测阈值,可以通过AUC-ROC曲线来确定最优阈值。 -
可以以使少数类更重的方式为类分配权重。 -
也可以使用异常检测。
11. 假设您正在处理时间序列数据。您的经理已要求您创建一个高精度模型。一开始,您选择决策树算法是因为您知道它对各种数据都适用。之后,您尝试了时间序列回归模型并获得了比决策树模型更高的准确度。这可能吗?怎么来的?
解决方案: 时间序列数据往往具有线性。然而,非线性交互最好使用决策树算法来检测。决策树未能提供稳健的预测,因为它们无法像回归模型那样有效地映射线性关系。总之,我们发现如果数据集满足其线性假设,线性回归模型可以产生稳健的预测。
12. 作为你新任务的一部分,你应该帮助一家食品配送公司省钱。尽管他们尽了最大的努力,但该公司的送货团队仍无法按时送餐。因此,客户变得不满意,因此为了让他们满意,团队免费提供食物。机器学习算法能拯救它们吗?
解决方案: 您可能已经开始在脑海中浏览 ML 算法列表。坚持,稍等!这些问题被用作测试您的机器学习基础知识的一种方式。问题不是机器学习问题之一,而是路线优化问题之一。三件事构成了机器学习问题:
-
存在模式。 -
这个问题没有数学解决方案(即使在编写指数方程时)。 -
上面有数据。
在确定机器学习是否适合这项工作时,请考虑这三个因素。
结论
你自己成功回答了多少道题?随着数据科学行业的蓬勃发展和公司正在寻找更多的数据科学家,面试的难度也可能会增加。这些问题将帮助您为高级水平做好准备。
基于概念的问题至关重要,但基于场景的问题在此过程中也至关重要,因为您给出的答案最终决定了您的角色。在招聘时,招聘人员会寻找问题解决者或能够在压力下提出最佳解决方案的人。上述场景基于过去两年在面试中提出的来自数据科学领域的面试问题。不断学习,不断取得成功。向大家致以最良好的祝愿!
原作者:Sonia Mathias,编译:Eden
点个赞再走呗!!!
<END>
原文始发于微信公众号(谈数据):数据科学:12个基于场景的面试题!
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论