本文主要是介绍一线互联网公司机器学习岗位面试经验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
从9月18号开始投实习简历到10月21号,差不多一个月的时间,面了三个互联网公司,有研发岗和算法岗,有的拿到了internship, 也有的被惨虐;会有面试通过的惊喜,也有一轮游的不甘;对结果的无法控制和等待过程中的焦虑,更会有对自身的不自信,相信每个面试的人都经历过,但无论如何实习这件事算是过去了,希望自己在接下来的路依旧不卑不亢,努力前行。
一、 某度内容推荐平台架构岗面试总结(拿到internship)
时间:9月18号–9月28号
由于有玩的不错的同学腾二在这家公司,于是就直接内推了,从投递简历到三面结束共10天,不得不说其效率还是挺高的。其实本想是和腾二一样做web开发岗,当时面试准备的也是和web开发相关的,但由于之前没咋做过项目,servlet、session等知识不会,就被转到推荐平台架构设计岗了,最终通过面试,也是挺幸运的。下面总结下面试内容:
- 一面:
一面是个姐姐,之前听腾二说它的部门经理是学姐,然后我就以为是她,就一个劲称呼她学姐,可惜后来才知道不是。她问的比较基础,建议大家要熟悉考研408的知识,这样至少不会一轮游。
- 介绍项目
参加过天池大数据竞赛,所以这个问的比较细,这个比赛前前后后被问了有四次。虽然感觉一次比一次表述的好一些,但还是缺乏有力的总结,比如为什么用RF模型,这个模型比别的好在哪里,适用场景有哪些,优缺点是啥;特征工程的时候,为什么要这样处理,这样处理有什么好处;你自己的创新点在哪里?总而言之就是细节一定要把握好,多问问自己那块为什么这样做,针对可能会被问到的问题都准备下。 - 数据库知识
由于自己学过慕课网的数据库实战项目课程,对mysql有一定的了解,故在简历中刻意提到了这些。mysql数据库的索引优化,sql优化,常用sql语句的书写也要懂(嵌套的,稍微复杂些的也要会),熟悉下较流行的数据库,比如memcache,redis等。(主从复制原理也要懂,,多线程访问数据库) - 网络
tcp协议三次握手四次挥手,http协议包含哪些请求,tcp对应协议,udp对应协议 - 编程语言
java的hashMap、hashTable等必问题,java虚拟机的GC回收算法,和C/C++区别等等 - 数据结构
两个编程题,判断单链表有没有环,并输出第一个环节点;找两个链表的公共节点。
- 介绍项目
总体来说,一面不是很难,这些需要大家有目的性的积累。
- 二面
二面是个男的,具体职位不清楚,但感觉比较难,个人面完后觉得要跪。问的网络方面的东西比较多,涉及到的原理性知识也偏多了些。
项目:
各种细节吧,每个人关注的点不一样,所以还是要把项目屡清楚,创新点、逻辑、多问几个为什么等等。
还问了我如何处理负载均衡,我回答的不好。网络:
浏览器输入www.baidu.com会发生什么?(说的越详细越好),这个问题可以看出一个人对网络的熟悉程度,根据这个问题,牵扯到了许多,比如常见路由选择协议及底层原理,ARP/RARP协议,html界面如何返回,servlet /session等等,由于这些我之前不太了解,感觉面的很差。
数据结构:
就一个,全排列算法
编程语言:
java必问的那些,GC算法,多线程(最好有多线程项目,会是亮点)
二面完个人感觉很差,因为网络那块的知识感觉被虐惨了,但是数据结构方面问的其实不难,感觉复习的时候复习到树那块的知识就足够了。算法部分推荐大家看july的《编程之法》,不多,很系统。
- 三面
三面基本上没有问技术,问了两个智力题,然后就问了下实习时间,介绍了下他们做的内容,以及自己要去的话会做啥等等。但是由于自己的时间问题,不能满足他们实习6个月的要求,所以很遗憾,最终没能去成。
二 、某一线互联网机器学习岗面试总结(一轮游)
机器学习岗还是很有挑战性性的,对机器学习算法理论要求比较高。这次面试主要围绕两个大数据竞赛,问了很多比赛中模型的细节,穿插着问了常用的分类、聚类模型原理、适用场景等问题。由于是第一次面算法岗,理论部分准备的不是特别充分,导致一轮被挂,没有觉得遗憾。以下是建议:
对常用模型要有熟悉的理解,从理论到应用,从推导公式,到深入理解,一个环节都不能少。要熟悉的理论知识:决策树、贝叶斯、逻辑回归、RF、GBDT、xgboost、KNN、k-means、adboost,甚至正则项L0、L1、L2的作用。
下面说说面试中被问到的:
决策树:信息增益、信息增益率、GINI系数。
信息增益用来度量属性划分样本的能力,信息增益越大,树的划分情况越好,越简洁,高度越低。
信息增益率:信息增益比上分裂信息熵,为了解决信息增益作为衡量指标的一个缺点(参考jiawei han那本书)
gini系数:用来度量分布不均匀性(不纯),总的类别越杂乱,gini指数越大,所以要找最小gini指标。
贝叶斯:贝叶斯原理,朴素贝叶斯。注意若某属性A是连续值的情况,gini系数和信息增益都如何处理。
贝叶斯定理:
朴素贝叶斯: 掌握某属性是连续值情况如何处理(高斯分布),遇到0概率值怎么办(拉普拉斯校准)。若属性之间不是相互独立的怎么办?(贝叶斯网络)
k-means缺陷,knn如何制定k,kd树原理。
L0、L1、L2范式
参照下面两篇博客:
http://blog.csdn.net/zouxy09/article/details/24971995/
http://blog.csdn.net/vividonly/article/details/50723852随机森林
http://www.36dsj.com/archives/21036
天池大数据竞赛大神bryan机器学习岗面试经验及资料整理
三 、某小公司机器学习岗面试总结(internship)
这家面的是一家小公司,由于不是前两场电话面试,而是face-to-face,所以问的更具体一些。
主要还是问了天池的竞赛,不过又细化到了python下scikit-learn包API如何调用、参数如何设置等问题,当然RF等模型原理还是少不了问的,还问了模型的输入和输出等。日后我会整理出一篇关于天池竞赛思路的博客,以便下次面试使用。还有C++的多继承的缺点,java为什么要有接口。剩下的就是白板面试,现场写算法。总而言之,face-to-face问的更细,问的也最久,虽然是小公司,但是面试压力还是挺大的。
最后,祝愿大家能够不断努力,证明自己,找到自己喜欢的岗位。
这篇关于一线互联网公司机器学习岗位面试经验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!