Py学习  »  机器学习算法

面试官如何判断面试者的机器学习水平?

AINLP • 2 年前 • 327 次点击  

兵法记载“知彼知己,百战不殆;不知彼而知己,一胜一负;不知彼不知己,每战必殆。”

参加面试时,如果能站在面试官角度换位思考如何考查候选人的水平,一定可以让我们的面试准备更加有效。

过去2年,从小公司、创业独角兽到互联网大厂,我经历了数十场面试,也有幸担任过算法面试官。结合自身经验,和大家分享一些简单实用的判断方法。

故事一

研一寒假,修完了学校要求的所有学分后,我开始在实验室悄悄准备面试,寻找实习机会。

当时我刚刷完吴恩达的机器学习课程,《西瓜书》看了前两章,对ML仅有基础概念,能回答“过拟合的原因,偏差方差有什么区别,聚类算法有哪些”之类的问题。

仗着初生牛犊不怕虎,我申请了几家公司的机器学习实习岗。几周过去了,回音寥寥,但还真有一家深圳的创业公司给我发来了电话面试邀请。

这是我第一次参加实习面试,戴着耳机,我紧握简历的双手沁出了汗水,心里在反复念叨简历上密密麻麻的笔记。

面试开始挺顺利,面试官问了一些关于python和项目的问题,我答得还不错。随后面试官问:“你都熟悉哪些机器学习算法呀?

我:”Emmm,逻辑回归、随机森林吧“。

面试官:“那先聊聊第一个,可以解释一下逻辑回归的原理吗?”

我:“逻辑回归是分类算法,一般用于二分类。算法里用了一个sigmoid函数把数值转换成了概率。”

最怕空气突然安静

面试官:“没了吗?那它是线性还是非线性模型?”

我:“非线性吧,您看它的图是曲线S形的。”(后面复盘才发现,逻辑回归是广义线性模型

面试官:“那再说说随机森林,有什么特点?”

我:“它是一种集成算法,用了好多棵决策树来投票。”

面试官:“决策树有哪些生成算法?”

我:“这个没注意过。”(复盘:最典型的有ID3、C45、CART树等

面试官:“那了解GBDT、XGB不?”

我:“听过名字...”

面试官:“.....”

我还在等面试官问“过拟合是什么,怎么处理”,这题咱会呀;结果5分钟后面试直接结束了!

很显然,第一次面试以失败告终。我的基础太差劲,面试官想评价我的机器学习水平不要太轻松。简单询问点算法原理和特点,2-3个回合就能把我问成哑巴。

故事二

那次面试后我狠狠地重补了机器学习基础,主要干了这么几件事:

1)阅读李航老师的《统计学习方法》和周志航老师的《西瓜书》,巩固理论;

2)遇到某一种算法公式太多看不明白(SVM等),就去b站上找相应视频,重新学习做笔记;

3)阅读机器学习“神书”《Hands-on Machine Learning with Scikit-Learn》,边学理论边实战;

4)很多算法和概率论、高数关系密切,我又去找了宋浩老师的概率论等课程,重新捡起了“被遗忘”许久的数学知识;

5)在公众号和知乎分享原创文章,把输入尽可能转换为通俗易懂的输出,例如:

认真的聊一聊决策树和随机森林

7分钟搞懂逻辑回归的来龙去脉

盘点高效的KNN实现算法

经过几个月的努力,我终于从机器学习青铜晋级为白银/黄金,拿到了深圳另一家知名创业公司的机器学习offer。

因为我的表现比上次好了很多,给了面试官更大的提问空间。除了原理,面试官还考查了模型间的差异对比、手写公式、应用场景等环节,来确定面试者是否真的能知其然知其所以然。咱还是以随机森林算法为例,还原一下当时的画面:

面试官:“介绍一下随机森林吧。”

我:“好的。这里的“随机”有两方面,一是训练样本有放回地随机采样,二是训练特征随机选择;“森林”代表它由很多决策树组成。随机森林是典型的基于bagging的集成算法,多棵树可以并行训练,效率很高。随机森林能同时用于分类与回归任务,其树型数据结构还可以作为特征选择工具....”

面试官:“构造一棵决策树的理论依据是什么?”

我:“决策树可以由ID3、C45、CART三种算法生成,理论依据分别是信息熵、信息增益、基尼指数。”

面试官:“可以写一下它们的公式吗?”

我:“没问题”(之前在b站看过完整的公式推导视频,还跟着手推了一遍,所以印象很深)

面试官:“好的,那它和XGB有什么区别,大家什么时候更喜欢用XGB呢?”

我:“XGB属于boosting的集成算法,是GBDT的高效工程实现,.....”(聊了约10分钟)

这次面试被问了很多问题,特别是算法原理和细节;一方面面试官的水平可能更加专业了,另一方面因为我的能力提高,给了面试官详细考查的“机会”。

故事三

从19年到20年6月,我和不少公司的面试官交流过,期间还有幸帮助实习的创业公司面试了算法岗实习生(约20人)。

时间很快进入暑假,校招开始了。面试算法岗过程中,除了简历上的经历,几乎每家大厂都会考查传统机器学习算法。

流程和故事二大致相同,此外我发现很多面试官都爱关注:是否用机器学习算法解决过实际项目/业务中的问题,为什么选择这个算法,最终上线的结果如何

如果这个问题能提前考虑到,并在面试中表现出色让面试官满意,证明面试者的理论、实践、项目能力都不算差,机器学习这一环基本可以过关。

面试管如何判断你的水平?

在短短1小时左右的面试时间中,优秀的面试官可以快速判断面试者的机器学习等各方面水平。方法可以简单概括为 4W 与 1H,What - Why -When - Where - How

面试官一般会从最简单的问题开始(What,是什么),由浅入深询问原理(Why,为什么,例如从原理分析为什么ID3/C45不能做回归任务),在什么场景下优先使用(When and Where),如何实现(How,可能需要手推或结合项目)。

在考查面试者机器学习水平的背后,面试官很希望同时考察候选人的学习能力、理论基础,业务水平,能否为公司带来价值

好的面试官就像一个目光犀利、经验老道的刑警,几轮问题下来就能看透你的真实“身份”。所以同学们不要心存侥幸,指望着面试前1-2周狂补高频考点,就能“炸胡”过面试官哈。

大家趁早把理论基础打扎实,有时间跟着书本或视频推一遍主流机器学习算法,再结合一些coding实践,面试时就能以不变应万变。


我是叶琛,一个爱旅行,懂养生的算法工程师兼干货博主,也是个喜欢用接地气的文风为年轻朋友分享互联网经验和算法知识的人。

硬核码字不易,如果觉得有帮助请一键三连或点个赞哟!

进技术交流群请添加AINLP小助手微信(id: ainlper)
请备注具体方向+所用到的相关技术点

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


阅读至此了,分享、点赞、在看三选一吧🙏

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/115757
 
327 次点击