从18年6月份开始,参加了一些公司的算法工程师/机器学习工程师岗位的社会招聘,拿到了一线知名
互联网比如BAT的算法岗位offer, 做一些总结,希望可以给大家准备这个职位提供些信息。
一、需要掌握的基本技能
数据结构知识
掌握一门编程语言,建议最好会Python
机器学习常用算法或者某一细分领域(推荐,自然语言处理,图像识别,语音识别等)的常用算法
建议:最好先掌握最基础的机器学习常用算法,例如逻辑回归,随机森林,gbdt,神经网络等,再
深挖推荐,图像等。
二、技术面试内容
技术笔试都是考察基本的编程/算法能力等
算法能力包括:
叫你手写代码,主要是数据结构包括数组,增删链表,树,排序算法等。也可能会有数据库基本
sql语句),还会考验你对python熟悉的程度,比如如何对队列增减等。
机器学习常用算法,例如:
决策树的ID3,C4.5,CART等,决策树的split原理和剪枝策略
神经网络如何工作
SVM的原理及公式推导
朴素贝叶斯的公式
Bagging 和 Boosting的区别
GBDT的参数怎么调
聚类过程
偏差和方差是什么,高偏差和高方差说明了什么
怎么理解损失函数,SVM的损失函数是什么,写出公式
过拟合怎么解决,L1和L2正则化有什么区别
为什么用最小二乘而不是最小四乘
GB和牛顿法的区别,它们和泰勒公式的关系
大数据开发能力:Hadoop/Hive/Map Reduce开发,例如Map Reduce 写 word count,并能够讲出过程,还有spark方面的知识,比如数据倾斜以及如何处理,如何分布式
跑,与hadoop的优缺点比较等
深度学习知识:
深度学习框架
CNN:什么是卷积,为什么要padding(根据简历的具体项目问)
这些面试题目仅供大家参考,各个公司问每个人的也不一样,会根据公司的需求,个人简历
上的项目问
三、总结:
各个公司的侧重点不太一样,有的公司侧重数据分析/数据挖掘(京东,笔试题好多spass),
有的公司偏向推荐算法(协同过滤,CTR点击率预估)(美团,汽车之家也很注重思维能力)
,用户画像(百度的百家号),有的公司侧重大数据开发(要求里写了Hadoop/Hive)(中
国移动),有的公司更侧重算法层面,建模能力(滴滴)
如果是面试自然语言处理(NLP),图像识别,语音识别之类的公司,基本是要求深度学习知
识的。创业公司的话,要求关注最新会议,跟paper,关注领域内最新进展
一些建议:
掌握基本知识后要确定好自己的目标,机器学习是一个大的方向,还有很多细分,究竟是要做
文本,推荐,图像还是语音识别,差别都很大,人不可能面面俱到,掌握好一个领域的内容就
很厉害啦~~
数据分析与机器学习的区别
个人的一点理解,具体还是看岗位要求怎么写的
数据分析偏向统计一些,要会SQL/Spass/SAS等数据分析软件等,更适合数学和统计专业
而机器学习偏向于做开发写代码,要了数据结构,算法模型等。