时间:5月初
面试形式:2轮技术人员面,1轮经理面(也会问技术问题)
一面
1.机器学习算法
1)二分类,如何评估(p,r,f)
2)过拟合如何解决(train,Val,test 划分;正则项)
3)说几种聚类算法(means,层次聚类),如何判断收敛(数据类标变动不大;簇内间距/簇间距离)
4)说几种组合模型(adaboost,随机森林)
5)两种组合模型原理的不同
答:一个基于数据迭代出结构相同的子模型,一个基于部分数据集分别建立结构不同的子模型
6)熟悉分布式吗?mapreduce
题目:有两个文件,一个是展示文件,记录(qid,query,返回结果表),列表每个元素是 (url,rank),rank 1~10;
另一个是点击文件,记录(qid,点击的位置~rank ),如何用mapreduce的思想解决。
二面
1.自我介绍
2.算法
讲聚类算法
讲数学建模,层次分析
3.手写代码
1)层次遍历二叉树(回车符号的输出)
2)十进制数转换为任意进制数
注意:大于10的数,映射到符号(先建字典)
可以先不考虑负数
4.项目
三面(经理面)
1.自我介绍
2.讲项目
3.希望今后偏业务还是偏技术?
4.实际场景,问题解决
4.1 重构代码后(减弱架构和策略间的耦合),如何验证重构后代码的正确性?
答:
1)捕获线上模型的输入与输出
2)将输入喂给重构后的模型,对比输出
4.2 更进一步的问题:
若发现与线上输出有30%的diff,如何确定是否为重构造成的?
核心考点:误差来源分析(可能线上本身的不稳定导致)
答:在线上模型中,捕获相同输入对应的输出,统计diff,若也在30%左右,说明线上模型也不稳定,排除重构的原因。
5.其他考察:责任感,持续推进任务的能力