java决策树算法_机器学习算法小公司社招面试5则

fa02bdde583b15bb77fb06bdb71782cf.png

大厂算法面试难度是......,没有经历过,看了招聘要求后,是真的把自己吓住了。对于没有算法经历,还没有名校计算机背景加成、没有论文加成的猿小明来说,可能小公司或者小团队是个好的选择吧。

面试经历发生在2018年7月~8月,3offer。时间点比较合适吧,赶上算法爆发,各种公司都尝试算法解决问题,但是搞算法的人还没有大量涌入市场。如果是现在的话,估计不好找到工作了,小公司机会也不多了,毕竟小公司不太需要算法。更多的还是大公司招聘算法,算法团队可能是新的、人不多,都是在做尝试。

​算法面试大众问题汇总

当时深度学习还没这么犀利,所以大众问题还是主要集中在传统经典算法、数据处理、特征提取等。

(1)LR(必问)。这个涉及内容很多,自己也是实现过,用在过kaggle项目,但是很多理论还是说不清楚。面试遇到的问题:最大似然、loss function、推导、适合场景、参数、回归、分类、梯度下降(mini batch、sgd)。

(2)决策树相关。gbdt、xgboost、随机森林等。会问推导、算法流程、bag和boost模式区别、剪枝算法。

(3)模型欠拟合、过拟合、数据清理、特征选择等等,以及用什么方法来解决。

(4)机器学习整体处理流程。认识数据、数据清理、特征选择、数据变换、构建模型、模型训练、交叉验证…。

(5)写写代码,只遇到了leetcode简单题(主要没有大厂面试机会,小公司又不考,大点互联网会考)

(6)讲讲简历上写的项目。我的只写了一个kaggle那个泰坦尼克问题(现在想想真是敢写啊,干到前5%也行,自己都没到)。还写了毕业论文和一些java工程,凑了一页多。

面试公司1——互联网金融(幸好没去)

很小的创业型公司,主业务是小额放贷,算法用于风险监控,大概几十个开发人员,无算法。这个公司打算招聘一个算法——就是面试的我。

一面,面试官是技术总监,完全不懂算法。聊得很开心,我也提醒他,他们需要一个有经验的人,我可能不太适合。哦,对了,面试中他拿了2罐冰镇饮料,他喝了,我没喝。然后面试到一半,他就肚子咕咕叫,然后厕所思考人生去了。

二面,隔周周六,在一个咖啡馆。本以为是合伙人聊聊业务,谁知道是真的机器学习面试。还问了源码实现、赛马问题(64匹马8条跑道,最少比赛次数找到最快的8匹马)。聊了好久,当场给了offer。据说面试人是哪个大厂的,每周去这个公司几次。总之最后我也没弄明白关系。不过有了之前的工作经历,这次问的比较多。那边总监团队说算法面试官是朋友关系,算法面试官说自己是合作伙伴,人力又说不打算短期招聘算法了。我也是被这种搞怕了,虽说工资对没经验的我还算高,但还是没去。

这个offer给的的确高,都能赶上算法平均工资了吧。为啥是幸好没去呢,18、19年都知道的,各种互联网金融公司倒闭、跑路、炸雷,自己经历过之前的小公司,也害怕了。


面试公司2——比较大的互联网金融(完败)

这个公司比较有名,老牌互联网,也是招聘算法做风控,面试了将近4个小时。

一面,面试官很好,把不会的还给我讲了。问了一些比较专业的问题。找到用户之间的关系,用哪种数据结构,如何进行搜索。这个题主要是风控用户之间互动场景,根据关系预测朋友间还款概率吧。基本是图结构,用矩阵或者稀疏矩阵存储,用数字对表示用户关系,有点像倒排索引。

二面,2个人,把我嘲讽了一番。主要是简历里边写了毕业论文的内容,包括凸优化、求解算法。说实话这些到现在我都不太会。然后还让我问问题,然后就是被嘲讽:连简历都说不明白,还有啥经验啊。

三面,主要是java面试。貌似是上边觉得我不合适,让java组来人试试。问了mysql,java基础等。

四面,人力。问一些为啥离职,期望工资、期望岗位等。由于自己强烈要求算法岗,java的话要了个高工资,算法岗相对低一些。然后就让我走了。

花絮:在等人力来的时候,有个员工问我:“您是来这里退款的吗?”,这个着实吓到我了,其实那会互联网金融公司已经开始暴雷了。


面试公司3——传统软件公司

给各种企业做软件服务的公司,团队据说有几百个开发,面试官也是不太懂算法。面了有半个小时,给了offer。

说是为了匹配工资,按照高级java头衔入职,做算法工作。也是没几个人的算法团队(很可能我就是第一个),还得兼顾开发,感觉有点怕,透露着各种奇怪的感觉。没啥实质算法内容面试。这个感觉面得很空虚,所以没去。


面试公司4——国企互联网团队

很大的公司,算法团队很小,刚组建,职位数据挖掘,面试很开心,也是入职的公司。

笔试1小时,涉及爬虫、正则表达式、机器学习基本流程、决策树等等,答得不好。

技术面40分钟,基本围绕分类、数据处理流程来问。涉及一些NLP的内容,不太会,也就没问太多。

第二天通知2面,面试官3个人——技术、人力和leader。差不多3、4周给了offer。虽说工资不高,但是感觉很好,一个国企,技术团队还没到100人,算法组当时也是只有1,2个人,不过能给比较充足的学习和尝试时间。


面试公司5——同学内推互联网(败了)

其实这个公司比较有名,旅游行业的,相对大厂来说是小公司吧。职位是推荐算法,一共耗时4个多小时吧,算上午饭一个多小时。

一面,一个和蔼的小哥哥技术面。面的很全面,机器学习、leetcode那种写代码(2个栈实现队列)、还有数学题(具体啥题忘了,大概是两个盒子装黑、白球,问取出白球概率)。

二面,貌似是leader。问了gbdt具体流程,还挺详细。我把gbdt论文里边的算法伪代码写出来了。还问了EM,这个真心不会。最后定的职位是java开发,负责算法模型和业务程序之间模块。

午休,同学带着去吃了他们的食堂,味道还不错。

三面,人力。据说被人力pass了,理由是之前工作换的频繁,这次找工作也没明确目标,职业规划不明确。奇葩的是,这个HR在后来被裁员了,据说是1年也没给团队招来俩人,在的人整天加班。

总结:必须要写一篇程序猿PK人力(HR),感觉HR对话很费劲,自己问问题也觉得不合适,还不够实力去怼她。总之一句话,就是憋屈。

如果您觉得还有价值,欢迎关注 @猿小明 ,长期更新程序猿酸甜苦辣,干货不断。

如果想随时互动交流获取资料,请关注公众号:迷茫猿小明