关于”算法工程师/机器学习工程师”的笔试和面试总结
从16年九月份开始,参加了一些公司的算法工程师/机器学习工程师岗位的校园招聘,做一些总结,希望可以给大家准备这个职位提供些信息。一、需要的基本技能数据结构知识掌握一门编程语言,c/c++/Java/Python机器学习常用算法或者某一细分领域(推荐,自然语言处理,图像识别,语音识别等)的常用算法二、笔试和面试内容大多是技术笔试然后二到三轮的技术面试技术笔试都是考察基本的计算机知识,概率统
从16年九月份开始,参加了一些公司的算法工程师/机器学习工程师岗位的校园招聘,做一些总结,希望可以给大家准备这个职位提供些信息。
一、需要的基本技能
- 数据结构知识
- 掌握一门编程语言,c/c++/Java/Python
- 机器学习常用算法或者某一细分领域(推荐,自然语言处理,图像识别,语音识别等)的常用算法
二、笔试和面试内容
大多是技术笔试然后二到三轮的技术面试
技术笔试都是考察基本的计算机知识,概率统计相关题目,智力题,linux常用命令和编程/算法能力等
- 计算机知识包括:
主要是数据结构包括数组,增删链表,树,排序算法等。也可能会有数据库基本语句,操作系统进程和 线程相关的,计算机网络的TCP/IP协议部分) - 编程能力:
一到三道在线编程题目 - 算法能力:
给出一个场景,回答使用什么算法去建模解决
- 计算机知识包括:
面试问题
- 机器学习常用算法,例如:
- 决策树的ID3,C4.5,CART等,决策树的split原理和剪枝策略
- 神经网络如何工作
- SVM的原理及公式推导
- 朴素贝叶斯的公式
- Bagging 和 Boosting的区别
- GBDT的参数怎么调
- 聚类过程
- 偏差和方差是什么,高偏差和高方差说明了什么
- 怎么理解损失函数,SVM的损失函数是什么,写出公式
- 过拟合怎么解决,L1和L2正则化有什么区别
- 为什么用最小二乘而不是最小四乘
- GB和牛顿法的区别,它们和泰勒公式的关系
数据结构算法知识,手写代码,例如:
- 最大子数组和
- 快速排序
- 字典排序
特征工程
PCA的原理
数据结构算法知识,手写代码,例如:
- 最大子数组和
- 快速排序
- 字典排序
编程能力,考察熟悉的编程语言的相关知识,编程语言掌握一门即可,例如:
- java:static的作用,hashmap,arraylist和linklist的区别,多线程
- c/c++:实现strstr(判断一个字符串是否是另一个的子串)
编程能力,考察熟悉的编程语言的相关知识,编程语言掌握一门即可,例如:
- java:static的作用,hashmap,arraylist和linklist的区别,多线程
- c/c++:实现strstr(判断一个字符串是否是另一个的子串)
python:安装Python的命令是什么,用python读取一个文件,一行一行的输出(不能用库函数)
python:安装Python的命令是什么,用python读取一个文件,一行一行的输出(不能用库函数),python常用库
大数据开发能力:Hadoop/Hive/Map Reduce开发,例如Map Reduce 写 word count
深度学习知识:
- 深度学习框架
- CNN:什么是卷积,为什么要padding(根据简历的具体项目问
Udacity的机器学习项目P0和P1,如果写,请想好如下问题:
- P0(泰坦尼克号项目):预测这个有啥用?召回率是多少?(题目中并没有算)
- P1(预测波士顿房价):特征都是离散的,为什么用决策树?
(虽然是用的决策回归树,但我也没想 到更好的回答的方式)。。。
- 机器学习常用算法,例如:
这些面试题目仅供大家参考,各个公司问每个人的也不一样,会根据公司的需求,个人简历上的项目问
三、总结:
各个公司的侧重点不太一样,有的公司侧重数据分析/数据挖掘(京东,笔试题好多spass),有的公司偏向推荐算法(协同过滤,CTR点击率预估)(美团,汽车之家也很注重思维能力),用户画像(百度的百家号),有的公司侧重大数据开发(要求里写了Hadoop/Hive)(中国移动),有的公司更侧重算法层面,建模能力(滴滴)
如果是面试自然语言处理(NLP),图像识别,语音识别之类的公司,基本是要求深度学习知识的。创业公司的话,要求关注最新会议,跟paper,关注领域内最新进展
四、推荐网站和书目
推荐编程刷题网站:牛客网,Leecode
推荐书目《剑指offer》(c++),《程序员代码面试指南》(java编写),
《机器学习(周志华著)》(西瓜书),《统计学习方法(李航著)》
五:一些建议:
掌握基本知识后要确定好自己的目标,机器学习是一个大的方向,还有很多细分,究竟是要做文本,推荐,图像还是语音识别,差别都很大,人不可能面面俱到,掌握好一个领域的内容就很厉害啦~~
六:数据分析与机器学习的区别
个人的一点理解,具体还是看岗位要求怎么写的
数据分析偏向统计一些,要会SQL/Spass/SAS等数据分析软件等,更适合数学和统计专业
* 大数据开发能力:Hadoop/Hive/Map Reduce开发,例如Map Reduce 写 word count
深度学习知识:
* 深度学习框架 * CNN:什么是卷积,为什么要padding(根据简历的具体项目问
- Udacity的机器学习项目P0和P1,如果写,请想好如下问题:
- P0(泰坦尼克号项目):预测这个有啥用?召回率是多少?(题目中并没有算)
- P1(预测波士顿房价):特征都是离散的,为什么用决策树?
(虽然是用的决策回归树,但我也没想 到更好的回答的方式)。。。
- Udacity的机器学习项目P0和P1,如果写,请想好如下问题:
这些面试题目仅供大家参考,各个公司问每个人的也不一样,会根据公司的需求,个人简历上的项目问
三、总结:
各个公司的侧重点不太一样,有的公司侧重数据分析/数据挖掘(京东,笔试题好多spass),有的公司偏向推荐算法(协同过滤,CTR点击率预估)(美团,汽车之家也很注重思维能力),用户画像(百度的百家号),有的公司侧重大数据开发(要求里写了Hadoop/Hive)(中国移动),有的公司更侧重算法层面,建模能力(滴滴)
如果是面试自然语言处理(NLP),图像识别,语音识别之类的公司,基本是要求深度学习知识的。创业公司的话,要求关注最新会议,跟paper,关注领域内最新进展
四、推荐网站和书目
推荐编程刷题网站:牛客网,Leecode
推荐书目《剑指offer》(c++),《程序员代码面试指南》(java编写),
《机器学习(周志华著)》(西瓜书),《统计学习方法(李航著)》
五:一些建议:
掌握基本知识后要确定好自己的目标,机器学习是一个大的方向,还有很多细分,究竟是要做文本,推荐,图像还是语音识别,差别都很大,人不可能面面俱到,掌握好一个领域的内容就很厉害啦~~
六:数据分析与机器学习的区别
个人的一点理解,具体还是看岗位要求怎么写的
数据分析偏向统计一些,要会SQL/Spass/SAS等数据分析软件等,更适合数学和统计专业
机器学习要求编程能力较强,即算法实现能力,更适合数学和计算机专业
七:感受到的现状
机器学习是一个相对开发来说较新的职位,一些公司也开始增加这些职位,需求还是有的,要求也较高
机器学习要求编程能力较强,即算法实现能力,更适合数学和计算机专业
以上是一些笔试面试总结,仅供大家参考,欢迎大家补充交流和批评指正
2016年11月
更多推荐
所有评论(0)