
一文搞定数据科学和机器学习的最常见面试题
去的几个月中,我参加了一些公司数据科学、机器学习等方向初级岗位的面试。
我面试的这些岗位和数据科学、常规机器学习还有专业的自然语言处理、计算机视觉相关。我参加了亚马逊、三星、优步、华为等大公司的面试,除此之外还有一些初创公司的面试。这些初创公司有些处于启动阶段,也有些已经成型并得到投资。
简单介绍一下我的背景:在校期间攻读机器学习和计算机视觉的硕士学位,主要进行学术方面的研究,但是有在一家早期初创公司(和ML无关)实习八个月的经历。
今天我想跟你们分享我在面试中被问到的问题,以及如去何解答。其中一部分问题很常见,旨在考察你的理论知识储备。但也有一些问题颇具创意,非常有意思。我将把常见的问题简单列出来,不多做解释,因为网上有许多资料可以参考。比较罕见、棘手的问题,我会深入探讨一下。希望你读完这篇文章后,可以在机器学习的面试中表现出色,获得自己满意的工作。
首先来看一些常见的理论问题:
什么是偏差-方差之间的权衡?
什么是梯度下降?
如何解决维数灾难问题?
什么是正则化?为什么要正则化?请给出一些正则化常用方法。
为什么在神经网络中,ReLU是比Sigmoid更好、更常用的激活函数?
数据规范化是什么?为什么需要对数据进行规范化?
我觉得这个问题很重要,值得强调。数据规范化在预处理阶段尤为重要,它可以将数值缩放到特定的范围,以在反向传播时获得更好的收敛性。一般而言,规范化就是让每一个数据点减去它们的均值,并除以标准差。
如果不这样处理,一些(数量级较大的)特征值在代价函数中的权重就会更大(如果大数量级特征值改变1%,代价函数的变化就会很大,但小数量级的特征值改变1%产生的影响则微乎其微)。规范化使得所有特征值具有相同的权重。
请解释降维,以及使用场合和它的优势。
降维是一种通过分析出主变量来减少特征变量的过程,其中主变量通常就是重要的特征。一个特征变量的重要性取决于它对数据信息的解释程度,以及你所采用的方法。至于如何选取方法,主要靠不断摸索,以及你自己的偏好。通常大家会从线性方法开始,如果结果欠缺拟合性,则考虑尝试非线性的方法。
数据降维的优势有以下几点:(1)节省存储空间;(2)节省计算时间(比如应用于机器学习算法时);(3)去除冗余特征变量,正如同时以平方米和平方英里存储地区面积没有任何意义(甚至可能是收集数据时出现错误);(4)将数据降维到二维或三维后,我们或许可以画图,将数据可视化,以观察数据具有的模式,获得对数据的直观感受;(5)特征变量过多或模型过于复杂可能导致模型过拟合。
如何处理数据集中缺失或损坏的数据?
你可以在数据集中找到缺失/损坏的数据,并删除它所在的行或列,或是用其他值代替之。Pandas中有两个非常有效的函数:isnull()和dropna(),这两个函数可以帮你找到有缺失/损坏数据的行,并删除对应值。如果要用占位符(比如0)填充这些无效值,你可以使用fillna()函数。
请解释一下某种聚类算法。
我写了一篇热门文章《数据科学家应当知晓的5种聚类算法》,详尽细致讨论了这些算法,文章的可视化也很棒。(可以自行百度搜索)
如何开展探索性数据分析(EDA)?
EDA的目的是在应用预测模型之前,了解数据的信息,获得对数据的直观感受。总的来说,开展探索性数据分析一般采取由粗到精的方法。我们首先获取一些高层次、全局性的直观感受。检查一下不平衡的类,查看每一类的均值和方差。看看第一行,了解数据大致内容。
运行pandas中的df.info()函数,看看哪些是连续变量、分类变量,并查看变量的数据类型(整型、浮点型、字符串)。然后删掉一些在分析、预测中不需要的列,这些列中的很多行数值都相同(提供的信息也相同),或者存在很多缺失值。我们也可以用某一行/列的众数或中值填充该行/列中的缺失值。
此外可以做一些基本的可视化操作。从相对高层次、全局性的角度开始,比如绘制分类特征关于类别的条形图,绘制最终类别的条形图,探究一下最“常用”的特征,对独立变量进行可视化以获得一些认知和灵感等。
接下来可以展开更具体的探索。比如同时对两三个特征进行可视化,看看它们相互有何联系。也可以做主成分分析,来确定哪些特征中包含的信息最多。类似地,还可以将一些特征分组,以观察组间联系。
比如可以考察一下,取A = B = 0时,不同的类会有什么表现?取A = 1、B = 0时呢?还要比较一下不同特征的影响,比方说特征A可以取“男性”或“女性”,则可以画出特征A与旅客舱位的关系图,判断男性和女性选在舱位选择上是否有差异。
除了条形图、散点图或是其他基本图表,也可以画出PDF(概率分布函数)或CDF(累计分布函数)、使用重叠绘图方法等。还可以考察一下统计特性,比如分布、p值等。最后就该建立机器学习模型了。
从简单的模型开始,比如朴素贝叶斯、线性回归等。如果上述模型效果不理想,或是数据高度非线性,则考虑使用多项式回归、决策树或支持向量机。EDA可以挑选出重要的特征。如果数据量很大,可以使用神经网络。别忘了检查ROC曲线(感受性曲线)、准确率和召回率。
怎么知道应当选取何种机器学习模型?
虽然人们应当坚信天下没有免费的午餐,但还是有一些指导原则相当通用。我在一篇文章里写了如何选取合适的回归模型,还有一篇备忘录也很棒!
为什么对图像使用卷积而不只是FC层?
这个问题比较有趣,因为提出这个问题的公司并不多。恰巧,在一家专攻计算机视觉的公司的面试中,我被问到这个问题。答案应分成两部分:首先,卷积可以保存、编码、使用图像的空间信息。只用FC层的话可能就没有相关空间信息了。其次,卷积神经网络(CNN)某种程度上本身具有平移不变性,因为每个卷积核都充当了它自己的滤波器/特征监测器。
为什么CNN具有平移不变性?
上文解释过,每个卷积核都充当了它自己的滤波器/特征监测器。假设你正在进行目标检测,这个目标处于图片的何处并不重要,因为我们要以滑动窗口的方式,将卷积应用于整个图像。
为什么用CNN分类需要进行最大池化?
这也是属于计算机视觉领域的一个问题。CNN中的最大池化可以减少计算量,因为特征图在池化后将会变小。与此同时,因为采取了最大池化,并不会丧失太多图像的语义信息。还有一个理论认为,最大池化有利于使CNN具有更好的平移不变性。关于这个问题,可以看一下吴恩达讲解最大池化优点的视频。
为什么用CNN分割时通常需要编码-解码结构?
CNN编码器可以看作是特征提取网络,解码器则利用它提供的信息,“解码”特征并放大到原始大小,以此预测图像片段。
残差网络有什么意义?
残差网络主要能够让它之前的层直接访问特征,这使得信息在网络中更易于传播。一篇很有趣的论文解释了本地的跳跃式传导如何赋予网络多路径结构,使得特征能够以不同路径在整个网络中传播。
批量标准化是什么?它为什么有效?
训练深层神经网络很复杂,因为在训练过程中,随着前几层输入的参数不断变化,每层输入的分布也随之变化。一种方法是将每层输入规范化,输出函数均值为0,标准差为1。对每一层的每个小批量输入都采用上述方式进行规范化(计算每个小批量输入的均值和方差,然后标准化)。这和神经网络的输入的规范化类似。
批量标准化有什么好处?我们知道,对输入进行规范化有助于神经网络学习。但神经网络不过是一系列的层,每层的输出又成为下一层的输入。也就是说,我们可以将其中每一层视作子网络的第一层。把神经网络想象成一系列互相传递信息的网络结构,因此在激活函数作用于输出之前,先将每一层输出规范化,再将其传递到下一层(子网络)。
如何处理不平衡数据集?
关于这个问题我写了一篇文章,请查看文章中第三个小标题。
为什么要使用许多小卷积核(如3*3的卷积核),而非少量大卷积核?
这篇VGGNet的论文中有很详细的解释。有两个原因:首先,同少数大卷积核一样,更多小卷积核也可以得到相同的感受野和空间背景,而且用小卷积核需要的参数更少、计算量更小。其次,使用小卷积核需要更多过滤器,这意味会使用更多的激活函数,因此你的CNN可以得到更具特异性的映射函数。
你有和我们公司相关的项目经历吗?
在回答这个问题时,你需要把自己的研究和他们的业务的联系起来。想想看你是否做过什么研究,或学过什么技能,能和公司业务及你申请的岗位有所联系。这种经历不需要百分之百符合所申请的岗位,只要在某种程度上有关联,这些经历就会成为你很大的加分项。
请介绍一下你目前的硕士研究项目。哪些项目和申请岗位有关联?未来发展方向是什么?
这个问题的答案同上,你懂的
结论
以上就是所有我在应聘数据科学和机器学习相关岗位时被问到的问题。希望你喜欢这篇文章,并从中获益。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
CDA 数据分析师:就业前景广阔的新兴职业 在当今数字化时代,数据已成为企业和组织决策的重要依据。数据分析师作为负责收集 ...
2025-06-30探秘卷积层:为何一个卷积层需要两个卷积核 在深度学习的世界里,卷积神经网络(CNN)凭借其强大的特征提取能力 ...
2025-06-30探索 CDA 数据分析师在线课程:开启数据洞察之旅 在数字化浪潮席卷全球的当下,数据已成为企业决策、创新与发展的核心驱 ...
2025-06-303D VLA新范式!CVPR冠军方案BridgeVLA,真机性能提升32% 编辑:LRST 【新智元导读】中科院自动化所提出BridgeVLA模型,通过将 ...
2025-06-30LSTM 为何会产生误差?深入剖析其背后的原因 在深度学习领域,LSTM(Long Short-Term Memory)网络凭借其独特的记忆单元设 ...
2025-06-27LLM进入拖拽时代!只靠Prompt几秒定制大模型,效率飙升12000倍 【新智元导读】最近,来自NUS、UT Austin等机构的研究人员创新 ...
2025-06-27探秘 z-score:数据分析中的标准化利器 在数据的海洋中,面对形态各异、尺度不同的数据,如何找到一个通用的标准来衡量数据 ...
2025-06-26Excel 中为不同柱形设置独立背景(按数据分区)的方法详解 在数据分析与可视化呈现过程中,Excel 柱形图是展示数据的常用工 ...
2025-06-26CDA 数据分析师会被 AI 取代吗? 在当今数字化时代,数据的重要性日益凸显,数据分析师成为了众多企业不可或缺的角色 ...
2025-06-26CDA 数据分析师证书考取全攻略 在数字化浪潮汹涌的当下,数据已成为企业乃至整个社会发展的核心驱动力。数据分析师作 ...
2025-06-25人工智能在数据分析的应用场景 在数字化浪潮席卷全球的当下,数据以前所未有的速度增长,传统的数据分析方法逐渐难以满足海 ...
2025-06-25评估模型预测为正时的准确性 在机器学习与数据科学领域,模型预测的准确性是衡量其性能优劣的核心指标。尤其是当模型预测结 ...
2025-06-25CDA认证:数据时代的职业通行证 当海通证券的交易大厅里闪烁的屏幕实时跳动着市场数据,当苏州银行的数字金融部连夜部署新的风控 ...
2025-06-24金融行业的大数据变革:五大应用案例深度解析 在数字化浪潮中,金融行业正经历着深刻的变革,大数据技术的广泛应用 ...
2025-06-24Power Query 中实现移动加权平均的详细指南 在数据分析和处理中,移动加权平均是一种非常有用的计算方法,它能够根据不同数据 ...
2025-06-24数据驱动营销革命:解析数据分析在网络营销中的核心作用 在数字经济蓬勃发展的当下,网络营销已成为企业触达消费者 ...
2025-06-23随机森林模型与 OPLS-DA 的优缺点深度剖析 在数据分析与机器学习领域,随机森林模型与 OPLS-DA(正交偏最小二乘法判 ...
2025-06-23CDA 一级:开启数据分析师职业大门的钥匙 在数字化浪潮席卷全球的今天,数据已成为企业发展和决策的核心驱动力,数据分析师 ...
2025-06-23透视表内计算两个字段乘积的实用指南 在数据处理与分析的过程中,透视表凭借其强大的数据汇总和整理能力,成为了众多数据工 ...
2025-06-20CDA 一级考试备考时长全解析,助你高效备考 CDA(Certified Data Analyst)一级认证考试,作为数据分析师领域的重要资格认证, ...
2025-06-20