给机器学习面试者的十项建议 | 面试官角度

article/2025/9/6 6:42:33

640?wx_fmt=png

 

 

在过去的一年里,我采访了一些在Expedia Group担任数据科学职位的人,职位从入门级到高级的都有。我想分享我的经验,这些经验适用于对申请数据科学职位的人。在这篇文章里,我还会给出关于你可能在面试中会遇到的问题的一些提示。

面试候选人帮助我认识了一些有广泛背景和技能的人。从CS / ECE,统计/数学到土木/机械工程,这些领域的人我都接触过。所幸我有机会能在这里与这些出色的人交谈。

在我讲更多细节之前,我想提一下,近年来,业界把数据科学家也叫做机器学习科学家应用科学家。虽然在一些公司中这些职位有着略有着不同的任务或者需要具备不同的技能,但对于大多数公司来说,这三个职位或多或少都指的是同一个东西。所以在这篇文章中,我提到的数据科学,跟上面的“机器学习”“应用科学”是一样的。

虽然每个人都有一套自己解决问题的技能,但是大多数公司都会要求数据科学候选人具备一些特定的基本技能。我将这些基本技能大概分为以下几类,然后再讨论这些技能具体是什么。根据公司和职位级别的不同,你可能会被问到以下提到的一个或多个相关问题:

1、关于你的简历和之前工作相关的问题

2、通用机器学习(和深度学习)知识

3、通用统计和数学知识

4、编程和软件工程技能

5、统计建模技巧

6、计算机视觉(CV),自然语言处理(NLP)和定价策略(Pricing Topics)

7、面试中沟通和表达能力

8、行为问题

9、系统设计技巧(取决于职位级别)

10、管理和领导技能(取决于职位级别)

 

1. 关于你的简历和之前工作相关的问题

你的简历在你面试时会被问到的那类问题中起着至关重要的作用。因此,请确保你对自己在简历中提到的任何内容有足够的了解,内容包括从课程和研究项目到编程语言。如果被问到诸如介绍一下你自己,或者介绍一下你现公司的工作的一般性问题是很常见的,不仅如此,你还会被问到关于你简历的问题。

例如,如果你在简历中提到几个以前的与NLP相关的项目,那么你应该对NLP有一个很好的理解,并且你很可能会在NLP上被问到一些技术问题,来评估你的技术含量。因此,如果你在一个项目上跟别人做了一些合作的东西,但对这项工作的贡献很小,我建议你让自己更熟悉该项目的技术方面。

或者,如果你提到PythonScala作为你最喜欢的编程语言,请确保你足够了解这些语言(至少在数据科学职位所需的范围内),以及每个语言中的一些机器学习相关库。我看过很多候选人在他们的简历中提到了Scala / Python,但当我问他们关于这些语言的一个简单问题时,他们根本不知道它,这会给我一个负面信号。如果你使用这些语言的经历非常有限,那么最好是诚实地告诉面试官,并且我相信大多数面试官都不会因为在你没有丰富经验的事情上对你进行评判。
 

2. 通用机器学习(和深度学习)知识

虽然不同公司的数据科学工作可能涉及广泛的问题和技能(包括数据提取和预处理,运行SQL查询,简单数据分析,深度学习,NLPCV),但机器学习是一个基础,现在大多数顶级公司都希望这些数据科学候选人懂得这一概念。因此,如果你正在申请数据科学职位,请确保你对以下机器学习概念有充分的了解。诸如统计学习要素”[1]模式识别与机器学习”[2]等书籍对这些主题非常有用。

  • 监督和无监督算法

  • 经典分类算法,如SVM,逻辑回归,决策树,随机森林,XGboost

  • 经典回归算法:线性回归,LASSO,随机森林,前馈神经网络,XGboost

  • 聚类算法,例如K-means和Spectral聚类

  • 降维技术,如PCA,LDA和自动编码器。

  • 偏差 - 方差均衡

  • 过拟合以及如何避免过拟合(例如正则化,特征选择,dropout(用于神经网络))

  • 有名的深度学习模型,如卷积神经网络(CNN),递归神经网络(RNN)和长短期记忆网络(LSTM),自动编码器,残差结构,序列到序列模型,生成对抗网络(GAN)

  • 评估指标,例如分类准确度,精确度,召回率,F1分数,均方误差,平均绝对偏差

  • 流行的损失函数,如交叉熵,MSE,三元组损失,对抗性损失,边际最大化损失等

  • 反向传播

  • 强化学习和深度Q学习(对于偏研究类型的职位)

  • 离线和在线(A / B)指标的比较?

上面列出的问题涵盖了一些与数据科学职位相关的高级机器学习概念,但你可能会被问到有关上述某些主题的更详细问题,例如你可能会被问到:

  • 分类算法中SVM和逻辑回归的比较

  • 生成模型和判别模型之间的差异

  • 梯度消失问题背后的根本原因和一些避免这种情况的常见做法

  • 在进行批量梯度下降时使用动量梯度下降法的优点
     

     

3. 通用统计和数学知识

今天的许多数据科学家曾经是统计学家和分析人员,许多机器学习的模型就是(重新包装为)统计学习模型(如线性回归,岭回归,LASSO,逻辑回归)。因此,许多面试官喜欢在统计学或数学方面提出一些问题也就不足为奇了。

对于统计学和概率学,如果你熟悉以下概念,那将是很好的:

  • 模型的偏差和方差以及如何计算它们

  • 分布抽样

  • 置信度和给定置信度所需的样本数量

  • 均值,方差,相关性(统计意义上和经验意义上)

  • 随机过程,随机游动(金融公司的数据科学职位需要)

  • 如何找到某些事件的概率

对于数学问题,你可能会被问到以下问题:

  • 一些需要一些思考的脑筋急转弯问题

  • 如何计算特定损失函数的梯度

  • 关于损失函数或优化算法的一些详细问题

     

     

4. 编程和软件工程技能

任何数据科学家都需要会编程。在创业公司(员工人数较少)中,数据科学家可能需要自己做很多软件工程,例如数据提取和清理以及模型部署。相比之下,在大公司中,还有其他人负责数据工程和模型部署,数据科学家主要负责培训和测试特定产品的模型。作为数据科学家,你还需要了解数据工程角色所需的一些术语和任务,例如ETL(提取,转换,加载)。在这里,我将介绍数据科学家使用的一些最广泛使用的编程语言,库和软件。

Gayle Laakmann McDowell [3]“Cracking the Coding Interview”等书籍让你在解决软件工程和算法问题上做好准备非常有帮助。这里还有几个很棒的网站,它们有一个很好的软件工程问题数据库,比如leetcodehackerrankgeeksforgeeks

4.1 编程语言

在编程语言方面,PythonScalaSQLR似乎是人们使用的最流行的语言,但我也看到人们使用其他语言,如JavaC ++Matlab(尽管它不是一种编程语言))。

4.2 有用的Python

在这里,我将提到一些与数据科学职位最相关的Python包:

  • 对于机器学习和数值计算,Scikit-learn,XGboost,LIB-SVM,Numpy,Scipy是使用最广泛的软件包。

  • 对于深度学习,Tensorflow,PyTorch,Keras被广泛使用。

  • 对于数据可视化,Matplotlib,Seaborn,ggplot是最受欢迎的(尽管还有大量其他有用的软件包)。

  • 对于CV,OpenCV和PIL很有用。

  • 对于NLP,NLTK,GENSIM,Spacy,Torchtext等软件包非常棒。

  • 对于使用数据库,Pandas和PySpark是Python中的两个流行的库,我个人认为它非常有用。

4.3 云服务

根据你要处理的数据规模,你可能需要在云服务上运行代码,例如AWSAzureGoogle Cloud。因此,拥有在云环境中运行代码的经验可能是一个加分项。你绝对不需要了解所有不同的云服务,但熟悉AWS中的EC2等计算服务可能是一个优势。

有些公司也可能在AWSAzure之上使用其他大数据服务,例如DatabricksQubole,但我认为不需要事先体验它们,因为这些很容易学习。

4.4 部署工具

在为任务训练模型(例如推荐系统或适度模型)之后,理想情况下,你希望在实际生产中使用它。因此,某人(可能是你,或你正在使用的工程团队)需要将你的模型部署到生产环境中。为此,熟悉DockerPython中的Flask可能会有所帮助。如果你想在AWS等云服务上部署模型,那么熟悉Sagemaker可能会有所帮助。我个人并不认为熟悉部署工具对于入门级数据科学职位是必要的。

 

5. 统计建模技巧    

作为数据科学家,你需要为各种产品/问题构建数学和ML模型,因此在面试过程中可能会遇到一些建模问题。这些问题通常与公司的域名有关。目标是看看你是否可以将你在概念上理解的内容应用于特定问题。你可能会遇到的一些示例问题可能是:

  • 你将如何构建机器学习模型来检测我们网站上的欺诈交易?

  • 你将如何构建机器学习模型以向我们的客户推荐个性化项目?

  • 你将如何建立一个模型来检测我们网站上产品的假评论(类似淘宝刷的评论)

  • 你如何使用ML模型检测敏感评论/推文?

  • 你如何建立模型来预测我们产品的价格?

  • 如何构建模型以自动标记社交网络中用户上传的图像?

  • 运行A / B测试时的在线指标?

 

根据你的答案,你可能还会被问到一些跟进问题,包括你需要的数据类型,评估模型的方式以及如何随着时间的推移改进模型。如果你想查看更多问题,https//medium.com/acing-ai/acing-ai-interviews/等网站非常有用。

在面试过程中,重要的是你的思维过程以及你能想到为产品构建ML模型的各个方面的能力。你绝对不需要给出最好或最完美的答案只要你对问题的高层次理解是合理的,你就是很棒的。
 

6. 关于CV,NLP和定价策略的问题

根据你申请的团队的重点产品,你可能还会被问到有关CVNLP或产品定价的一些问题。因此,在面试之前,请确保对你申请的团队进行一些研究,以便更好地了解他们的重点。面试官可能会问你关于NLP或视觉中非常高级的概念,一些其他面试官可能会提出更具挑战性的问题。

以下是你可能获得的一些与  NLP  相关的问题:

  • 什么是词干提取和词形还原?

  • 什么是词袋模型?TF-IDF怎么样?

  • 你怎么能找到两个单词之间的距离?有哪些有名的字符串距离指标?

  • 什么是命名实体识别,你将如何评估NER系统的性能?

  • CRF模型如何针对词性标注进行训练?

  • 什么是公报特征,什么时候它们有用?

  • 你将如何构建神经机器翻译模型?你会如何评价其表现?

  • word2vec对于经典的one-hot编码有什么优势?

  • 你会如何建立一个Q&A问答系统?

  • 你如何检测一系列文档中的主题?

  • 你如何找到客户评价的情绪(极性)?

  • 正则表达式的一些问题

以下是你可能会被问到的一些计算机视觉相关问题:

  • 你如何将网站上的图像分组为不同的类别(如电子,服装等)?

  • 如何构建一个模型来自动地标记一张图像中的不同人脸?

  • 如何检测图像/视频的质量并过滤模糊的图像/视频?

  • 什么是超分辨率,你如何评估超分辨率模型的性能?

  • 如何检测图像中的不同对象?

  • 你如何检测图像中的文本区域?

  • 你将如何创建自动图像标记系统?
     

7. 沟通和表达能力

数据科学职位通常涉及大量的沟通和演示。这可以用于与产品经理讨论新项目,或向你的团队展示你的模型。因此,能够与其他人(技术人员和非技术人员)交流关于你的工作和想法是非常重要的。

有时你可能需要以非常技术性的方式向同事或经理传达你的新发现,有时你可能需要说服产品经理你的模型对他们有用,不用描述太多的技术细节。

面试官通常不需要问你一个具体的问题来评估你的沟通和表达能力,他们可以在面试过程中了解面试者的这些能力。我的建议是:

  • 尝试首先向面试官提供你的解决方案的高级图片,然后讲解其中的细节。通过这样做,如果你的高级方法是正确的,你可以获得反馈。

  • 你可以专门询问面试官你的答案是否是他们想要的。如果不是他们想要的,你可以请他们给你一些提示。

  • 尝试将建模问题分解为几个部分,然后对每个部分分别进行阐述。对于许多ML建模问题,你可以将它们分解为相关的数据提取,数据清理,特征提取,预测建模,评估和可能的改进。

     

     

8. 行为问题

有些人在面试时也可能会问行为问题。这些问题可能包括你过去的工作经历(为了了解你是否具备工作所需的技能),以及你的个人兴趣。这些问题也可以集中在你过去如何处理各种工作情况上。你对这些问题的回答可以展示你的技能,能力和个性。以下是你可能会被问到的一些示例问题:

  • 你喜欢什么样的职位,一个涉及研究和研发的职位,还是更倾向于把现有模型应用于公司内部数据并围绕它构建数据驱动的解决方案的职位?

  • 你是喜欢单独工作,还是与一群人合作解决一个问题?

  • 举一个你达到的目标的例子,告诉我你是如何实现它的,以及你面临的挑战是什么?

  • 举一个你没有遇到的目标以及你如何处理它的例子?

  • 如果你需要在deadline交付模型,请告诉我你将如何在压力下工作?

     

     

9. 系统设计技巧(取决于职位级别)

根据你申请的职位级别,你可能还会被闻到一些系统设计面试(SDI)问题,这些问题主要是关于设计大规模分布式系统的问题。

由于缺乏足够的开发大规模系统的经验,以及没有标准答案的设计问题的开放性,这些问题可能具有挑战性。

我不打算在这里谈论SDI问题太多,因为它不是这篇文章的重点,但我会提供一些示例问题,以及一些有用的资源,如果你想在这方面得到更多的练习。

以下是一些示例系统设计问题:

  • 你将如何设计Youtube或Netflix等视频流服务?

  • 你会如何设计Facebook Messenger或WhatsApp?

  • 你如何为客户服务设计聊天机器人?

  • 设计Quara或Reddit?

  • 设计像Snapchat这样的应用程序?

  • 你将如何设计Dropbox或GoogleDrive或Google Photos等全球存储和共享服务?

  • 你会如何设计像Twitter或Facebook这样的服务?

  • 你将如何为Google或Expedia设计预先输入系统?

     

     

以下是面试中,关于设计问题的一些有用资源:

  • https://github.com/checkcheckzz/system-design-interview

  • http://blog.gainlo.co/index.php/category/system-design-interview-questions/

  • https://hackernoon.com/top-10-system-design-interview-questions-for-software-engineers-8561290f0444

 

10. 管理和领导技能(取决于职位级别)

如果你正在申请数据科学经理职位(有时甚至是高级或主要职位),面试官将需要评估你的管理和领导技能,并了解你之前的管理经验。

这个候选人的理想背景是在机器学习和预测建模等领域具有强大理论背景的人,以及良好的软件工程技能。要成为有效的领导者,候选人还需要具备良好的沟通技巧和良好的规划技能,以便能够以考虑构建数据驱动产品所带来的许多风险的方式进行优先排序和规划。

我不会谈到太深入到管理技能的方面,但我将在这里提供一些示例问题:

  • 你所管理的最大团队是什么?你面临的挑战是什么?

  • 假设你的团队已经构建了一个模型,可以在测试集上实现90%的准确率。为了确定模型性能是否可靠,你需要了解什么?

  • 讨论一个可能影响我们公司的数据驱动产品

  • 当你想为你的团队招聘员工时,你会考虑哪些问题?

  • 你如何吸引顶尖人才加入你的团队?

  • 你认为对数据科学家至关重要的技能是什么?

  • 什么是大数据,你熟悉大数据架构吗?

  • 你如何在工作中保持与时俱进?

  • 你如何判断与其他团队的合作是否成功?

在这篇文章中,我尝试提供一些提示,以及你在DS面试期间可能遇到的一些高级问题。鉴于数据科学角色的范围不断扩大,当然有一些主题和问题在此未讨论。但我试图涵盖一些对数据科学面试中非常重要的一般性主题。

我的最终建议是对你申请的团队/公司进行更多研究,并更好地了解他们正在处理的问题。然后,你可以将主要重点放在为与该团队相关的主题做好准备。

参考链接

[1] https://web.stanford.edu/~hastie/ElemStatLearn/

[2] https://www.microsoft.com/en-us/research/uploads/prod/2006/01/Bishop-Pattern-Recognition-and-Machine-Learning-2006.pdf

[3] http://www.crackingthecodinginterview.com/

文章来源:https://towardsdatascience.com/giving-some-tips-for-data-science-interviews-after-interviewing-60-candidates-at-expedia-395fff7e073b
 

 

欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/

欢迎关注PyTorch官方中文教程站:
http://pytorch.panchuang.net/


http://chatgpt.dhexx.cn/article/KuV3ed4b.shtml

相关文章

51 个基本的机器学习面试问题和答案

51 个基本的机器学习面试问题和答案 机器学习面试问题:4个类别 我们传会看到机器学习面试问题涉及以下几个类别:   第一个类别与机器学习算法和理论有关。你需要展示对算法之间的比较以及如何正确地衡量它们的效果和准确性的理解。   第二个类别与你…

关于机器学习的面试题,你又了解多少呢?

前面已经陆续分享了几篇关于机器学习的博客,相信刚接触这个领域的朋友们肯定是比较感兴趣的,那么本篇博客让博主为大家介绍一些关于机器学习常见的面试题吧~ 文章目录 1、为什么需要对数值类型的特征做归一化?2、类别型特征如何处理的?3、距离/相似度…

40 个机器学习面试问题(文末福利送书)

原创 文章目录 初学者问题 (10)1. 偏差和方差之间的权衡是什么?2.解释有监督和无监督机器学习的区别3. 监督学习和无监督学习最常用的算法是什么?4.解释KNN和k-means聚类的区别5. 什么是贝叶斯定理?我们为什么用它?6. 什么是朴素…

机器学习笔试面试超详细总结(一)

文章目录 1、判别模型和生成模型2、最大概率分词3、中文分词的基本方法4、CRF(条件随机场)的特点5、隐马尔可夫模型(HMM)时间复杂度及可以使用的数据集6、在二分类问题中的评价方案7、决策树特点8、过拟合9、异方差性10、Fisher线…

机器学习常见面试题

特征工程 常用数据类型:结构化数据(类似于表)、非结构化数据(文本 图像 音频 视频…) 1.为什么要对数值类型的特征做归一化? 可以将所有特征都统一到一个相同的特征区间内。 线性函数归一化&#xff08…

机器学习面试知识点总结

文章目录 计算学习理论过拟合与欠拟合过拟合欠拟合 偏差与方差最大似然估计与贝叶斯估计极大似然估计贝叶斯决策论贝叶斯估计 特征工程与特征选择特征工程逐层归一化特征选择 模型融合融合策略 评估方法与评价指标评估方法评价指标 优化算法正则化深度模型中的优化 采样聚类与降…

经典的机器学习200道面试题(附参考答案)

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 来 源: https://blog.csdn.net/sinat_35512245/article/details/78796328 本文总结了往年BAT机器学习面试题,干货满满,值得收藏。 想…

机器学习面试题总结

链接:https://www.jianshu.com/p/d289755e89bb 一 面试题概述 面试的时候,面试官会结合你的回答和你的简历来询问你,所以在写简历的时候,简历上所写的所有内容在写的时候必须自己反问一下自己,这个知识点懂不懂。 面…

机器学习面试

1机器学习面试 一、机器学习基础知识1.1LR线性回归1.1.1线性回归/广义线性回归1.1.2logistics regression对数几率回归1.1.3感知机 1.2 SVM1.2.1SVM 支持向量机1.2.2 SVR 1.3朴素贝叶斯1.4 聚类1.4.1 KNN1.4.2原型聚类 1.5决策树1.5.1原理1.5.2特征选择1.5.3决策树生成1.5.4决策…

springboot的filter 过滤器的使用

一 过滤器的作用和概述 1.1 简述 人--->检票员(filter)---> 电影院。 注意:配置多个filter的时候,要设置编号id,值越小,优先级越高,越先执行。 在3.0之后新增WebFilter注解&#xff0…

(29) JavaWeb中使用filter过滤器拦截请求、权限检查,过滤响应。

Filter 过滤器 一、Filter 什么是过滤器二、Filter 过滤器的使用步骤:三、Filter 的生命周期四、FilterConfig 类五、FilterChain 过滤器链六、Filter 的拦截路径的三种配置方式 一、Filter 什么是过滤器 1、Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分…

多个Filter过滤器如何确定执行先后顺序

1、首先,过滤器是有一个Order()的注解,参数值越低,执行顺序越靠前,但是在我测试之后,发现并没有成功,过滤器依旧是按照名称的顺序先后执行,那么我们就只能通过编写config文件来决定执行顺序 Co…

详谈 Filter 过滤器

详谈 Filter 过滤器 文章首发在CSDN博客,转载请务必注明以下所有链接,否则考虑法律追究责任。 CSDN地址:http://blog.csdn.net/tzs_1041218129/article/details/53345485 个人博客地址:www.54tianzhisheng.cn/Blog/html/filter…

JavaWeb-使用Filter过滤器进行权限检查

文章目录 1. 什么是Filter过滤器2. Filter初体验3. Filter的生命周期4. FilterConfig类5. FilterChain过滤器链6. Filter的拦截路径6.1 精确匹配6.2 目录匹配6.3 后缀名匹配 1. 什么是Filter过滤器 Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是:Servl…

JavaWeb—Filter过滤器

目录 1、过滤器的原理 2、如何创建过滤器 2.1在xml中注册 2.2使用WebFilter注解 让一些合法的请求通过该过滤器,而拦截一些不符合要求的请求路径。当请求到达该过滤器时,可以为请求设置一些参数。 1、过滤器的原理 2、如何创建过滤器 2.1在xml中注册…

Filter过滤器的拦截路径配置

Filter的介绍 拦截路径配置 拦截所有资源:/* 具体资源路径:/myServlet/demo1 拦截目录:/myServlet/* 后缀名被拦截:*.jsp Filter的介绍 拦截路径配置 过滤器的拦截路径一般有这4种方式 拦截所有资源:/*&#xff0…

Filter过滤器(详解)

一、Filter的工作流程分析 二、Filter 过滤器的使用步骤 编写一个类去实现 Filter 接口实现过滤方法 doFilter()到 web.xml 中去配置 Filter 的拦截路径 1) Filter 的代码: public class AdminFilter implements Filter { /** * doFilter 方法&#xff…

Filter过滤器及其作用

1.什么是过滤器? 过滤器,顾名思义就是起到过滤筛选作用的一种事物,只不过相较于现实生活中的过滤器,这里的过滤器过滤的对象是客户端访问的web资源,也可以理解为一种预处理手段,对资源进行拦截后&#xff…

Filter 过滤器的介绍及使用

Filter过滤器 MySql的语法看这篇就够了,传送地址:MySql必知必会 JSP的使用看这篇就够了,传送地址:JSP必知必会 文章目录 Filter过滤器一、Filter过滤器的介绍二、Filter过滤器的使用三、Filter过滤器的生命周期四、FilterConfig类…

Java Servlet中Filter过滤器的原理以及使用方式

详细介绍了Java Web Servlet中的Filter过滤器的原理以及常见用法。 文章目录 1 Filter接口1.1 过滤器的生命周期1.2 doFilter过滤方法 2 Filter的使用3 Filter的执行顺序3.1 多个过滤器 4 Filter的应用4.1 脏话过滤器4.2 编码过滤器4.3 统计IP访问次数4.4 禁止动态资源缓存的过…