这个岗位的叫法很多:人工智能/数据挖掘/机器学习/…
核心是偏数学算法的,跟传统写C/Java类程序员不太一样。
【本人背景】 可作为2016/17/18应届生
如何准备校招
【整体节奏的把控】
大厂的开放时间会比较早,密切关注网申时间节点:
- 2016届的秋招:2016年7月 - 2016年11月
- 2017届的春招:2017年2月 - 2017年4月
- 2017届的暑期实习:2017年3月 - 2017年5月
- 2017届的秋招:2017年7月 - 2017年11月
- 2018届的春招:2018年2月 - 2018年4月
- 2018届的秋招:2018年7月 - 2018年11月
【手撕代码能力】
这个提早准备没错的。以前被问敲过几行python觉得这个问题很蠢,但实际就是敲的越多你踩过的坑就越多,你能快速独立解决的问题就越多。
- 主流语言:R、Python
- 多数在大厂的面试:相关包的使用,及具体场景问题,比如内存不够的解决方案等。
- “研发”和“大数据”跟机器学习有本质的区别,但在实际工作应用中有许多穿插工作,避免不了的被提问“数据结构及算法类(C/Java)”和“大数据类(Hadoop)”的问题。当然不强求,知道更多就是加分项。
- 建议提早半年开始准备。我的代码也是从实习开始敲起,敲了半年才觉得下手如有神哈哈。不要做没实际意义的课后题,也不要照着书本例题敲,敲完你就忘了,书本这些都是已经排除万难的东西,得不到什么成长。
- 入门修炼:全国大学生数学建模竞赛、全美大学生数学建模竞赛、kaggle、天池…
【项目经历/实习经历】
如果明确自己的职业方向为人工智能/数据挖掘类的,请不要浪费时间去申请其他与技术无关的实习。端茶送水,外卖跑腿,打印纸并不能帮你。当时由于身边同学都断断续续出去实习,面前有一份大厂行政的实习,我…竟然犹豫了一下,好在也还是拒绝了。
- 尽量选择大厂的技术实习,毕竟以后想进去会更难。但是不要因为一个月拿3000块就只干3000块的活。把整个项目跟下来,了解框架的架构,优化的方向,多去尝试,就算加班(加班在深圳很正常)也是你赚到,思考如何简化重复性工作,去尝试了解自己部门和其他部门的工作内容与方向,了解的越多你对自己想做的事情了解的也越多。我实习做的评分卡模型,就是二分类,除了传统逻辑回归,也尝试新的XGB等等,而且虽然别人也在做,但是私下自己会把整个模型写一遍,包含数据清洗和模型调优等,这样对业务的了解也更透彻,面试起来所有的细节都是亲手做过的,也就比较顺了。
- 如果没有实习在手,世界给我们数据挖掘选手的大门还是敞开着的。大学生有全国的数学建模大赛,再高逼格的还有kaggle,真刀真枪的题下不了手,kaggle上还有专门给数据挖掘入门者的练习场。相关的比赛还有很多,包括腾讯、阿里等大厂也时不时会发布算法大赛,目测这样的算法大赛只会越来越多,你坚持做完一个项目,你在平台上还可以得到相关名次,名次越靠前越有利哈哈哈这是废话。
【临时佛脚该抱还得抱】
- 数据库:sql、hive语句的基本用法W3school
- 基本算法的推导:SVM/BP/LR/CART/GBDT/XGB/KNN/KMEANS/…
- 基本原理的逻辑:决策树的剪枝等/神经网络的dropout等/损失函数/正则化/…
- 基本的包的使用:python的pandas/numpy/sklearn; R的dplyr/data.table/…
- 必备问题:为什么想来这家公司?/为什么离开上家公司?(提前了解面试公司背景和产品)
完整面筋+总结
校招
== 微众银行 ==
网申 / 在线笔试(4大题)
- 有近一年各类数据,除去节假日带来的销售增长,预测某家商场在国庆节假日原本的销售量。(用时间序列模型角度解题)
- 一个市中心的宠物店,为何周末的顾客访问量低于上班日?(考虑养宠物的人群在工作日与周末的习惯)
- 中位数与平均数的关系(箱图解释大于等于小于三种样本类型)
- 如何判别某高校食堂的点餐者是在校学生还是社会人士?(周期性的买餐时点与频率等)
感想就是,自己判别是聚类还是分类等,自己决定哪些是需要的特征,哪个是y值,四大题都是思路题,没有编程大题。
== 顺丰科技 ==
网申 / 在线笔试(10个选择题 + 1道思路题)
- 选择题范围:
损失函数/正则化/基本算法/栈/… - 大题:
SVM的应用:检测快递包裹内违禁物品(决定x值与y值)
== 美图秀秀 ==
网申 / 在线笔试(10个选择题 + 1道编程题)
整场笔试题比较偏向研发类,考到较多的Java和C相关,而基本没有R与Python。
所以不推荐擅长数学专业的学生尝试,推荐计算机专业的爱滤镜爱美颜的同学去试试哈~
社招(全部为内推机会)
== 微保 ==
车保反欺诈 / 一面(现场)
现在在微信的腾讯服务模块已经上线了,第一次这么靠近腾讯大厦呀内心这个激动的,本人当时对腾讯有种盲目的崇拜。
- 自我介绍
- 项目介绍
- 项目LR和XGB原理、区别
- 类别不均衡如何处理
- 反欺诈场景:如何判别骗保行为(假设你可以拥有所有你想要的数据,当时觉得真不愧腾讯爸爸)
- 为什么XGB比GBDT好
- 数据清洗有哪些
- PCA的原理,计算推导
- 变量筛选有哪些方法
- 信息增益的计算公式
- 样本量很少情况下如何建模
- 交叉检验的实现
- 决策树如何剪枝
- WOE/IV值计算公式
- 分箱有哪些方法
- 最优分箱的原理
== 鹅厂 ==
视频推荐数据挖掘工程师 / 一面(现场)
- 自我介绍
- 手推SVM:目标函数,计算逻辑,公式都写出来,平面与非平面
- 项目介绍
- XGB原理介绍,参数介绍,决策树原理介绍
- 数据清洗步骤
- Linux熟悉程度
- C/Java熟悉程度
- 过拟合如何解决
- 除了LR/XGB还实现过什么算法
- 分箱有哪些
- 核函数有哪些
腾讯游戏:用户画像大数据分析工程师 / 一面(电话面)
- 自我介绍
- 项目介绍
- LR的原理,目标函数
- XGB比GBDT好在哪里
- 熟悉腾讯哪款游戏?(王者荣耀)
- 游戏反欺诈场景题:在王者荣耀中,假设你拥有所有你所需数据,如何判别玩家挂机?
- 游戏反欺诈场景题:在王者荣耀的挂机玩家中,如何判别对方是主动挂机(坑队友)还是被动挂机(进入地铁信号不好等)?
- 平时通过什么渠道学习机器学习?(好问题值得好好准备)
- 开发需求:LINUX环境的熟悉程度
- Java/C++的基本操作与后台维护
- python如何实现数值传递
== 顺丰科技 ==
大数据挖掘与分析工程师 / 一面(现场)
- 运筹学最熟悉哪个算法
- 场景题:双十一快递爆发时,如何减少快递员的劳动力?(仓库选址问题)
- XGB与GBDT的区别
- XGB有哪些参数,取指范围,各代表什么意思
- 排列组合概率题
- 如何通过线性规划实现最优送货路径
- 决策树先剪枝还是后剪枝好
- 损失函数有哪些
- 最近机器学习比较火的书籍
- 除了R与Python外,MATLAB熟悉程度
- 偏向做数据挖掘还是算法研究
- 说一个聚类算法
- C++的语法知道哪些
- 类别不均衡的处理方式有哪些
- bagging与boosting的区别
- 数据标准化有哪些方法
- 模型评估指标有哪些
- 解释模型复杂度
- onehot原理
- 正则化如何实现
- 说出一个聚类算法(KMEANS)
机器学习与人工智能工程师 / 一面(现场)
- 自我介绍
- 项目介绍-评分卡模型
- 评分卡模型的原理 = LR原理 或 二分类原理
- 评分卡模型的最终结果如何转换成决策规则,KS值起到什么作用
- 为什么要转行/为什么来顺丰
- 数据清洗方法有哪些
- WOE的作用
- 缺失值填充方式有哪些
- 变量筛选方法有哪些
- ROC计算逻辑
机器学习与人工智能工程师 / 二面BOSS面(现场)
- 统计检验有哪些
- t检验如何使用
- 场景题:两个卖场差价只有1分钱,你从哪个卖场进货?(超级简单的问题,没有限制条件,当然从便宜的那家)
- 项目-评分卡制作介绍
- 什么时候能上班
当时面过了技术面和BOSS面,卡在HR面说是因为我没有工作经验就把我拒了,内心真的讨厌顺丰HR,所以对顺丰没什么好感,可能当时真的寄予厚望的,太让人失望了
== 魅族科技 ==
人工智能与数据挖掘工程师 / 一面(技术+BOSS)(现场)
- 自我介绍
- 项目介绍
- 决策树的优点
- 如何判断一个模型中的变量太多
- 决策树与其他模型的损失函数、复杂度的比较
- python遇到大数据量时如何处理空间问题
- 决策树能否有非数值型变量
- 决策树与神经网络的区别与优缺点对比
- 过拟合如何处理
- 类别不均衡如何处理
- 数据结构有哪些
- XGB的参数有哪些
- model ensembling的方法有哪些
- 模型复杂度与什么有关
- 线性回归与逻辑回归的区别
- 大数据了解多少?Hadoop使用程度
== 绿米(offer) ==
人工智能工程师 / 一面(英文现场)
很可爱的老外技术官,直接把我的简历翻过去,空白面朝上。并说他的面试风格就是与对面的人沟通而不注重纸上的字。然后就以问我的名字读音和我的家乡开始了我终身难忘的面试~~
- 你在香港读书,听说香港人都很排外是这样的吗?
- 假如咱们的桌子上现在有个阿拉丁神灯,你会许哪三个愿望?
- 你最讨厌的事情?
- 面试官Tony讲了很多他的故事并且给我推荐了几本书
- 展示了绿米的产品,也激动的告诉HR ‘You must hire her!’
别看好像这个面试很无聊,重点在三个愿望那里,我在我最焦虑的时候日日夜夜思考我到底要什么,到底来这世间为了什么,做什么事情能让我从心底里开心而不是将自己浮于众人的唾液之下。很庆幸这场面试没有技术面,但是我连续三天熬夜实打实的准备了,手推了所有我知道的算法,说实话我也不怕就算问到什么我不知道至少我尽全力了。
但是好像就是那个能看懂我的人终于出现,他愿意以公司给我提供平台,让我实现自己的想法与愿望,真的别无所求。所以,无论那些笔试是否有回音,我也不在乎了,就是绿米了。
我的求职之路就在此告一段落了。
总结:
- 每个面试的结尾,面试官会问你有没有什么想问的,请注意这个问题也很关键:
比如:这个小组目前在做什么项目/实现项目主要用什么语言和算法/…
尽量不要问加不加班,有没有加班费之类的,别问我为什么这么说…
在面试中遇到不理解的,比如C++语法不懂,可以问这个C++具体在项目中实现什么功能
如果你提出好问题,能再次引起面试官对你的兴趣,那就能增加面试成功率 - 应届生就好好准备校招,别懒,别怕输,别怕被拒,从哪里跌倒从哪里起来
社招不是你能招呼的,会更挫败,因为你什么也没做过 - 虽然是做技术的,但是日常social一下还是收益很大的
实习的时候,也要与周围同事和平相处,尤其是老大哥们,也许哪天他就帮你内推大厂去了
内推你能知道意想不到的信息,面试官,岗位需求,最近在做什么项目之类的 - 挑选给你机会的公司,不要浪费自己的时间
不要每家都去,去之前了解这家公司与你的匹配度
尤其社招,你一改动简历就很多人给你打电话,你要有策略的去进行面试,把握总结每个机会
像我就是东一榔头西一榔头的,好多都是止步于第一面,就没回信儿了,因为每次面完没有好好反思总结,等下次再遇到这问题还是抓瞎,十分消耗自己的时间和信心
在此鞠躬感谢所有帮我内推小哥哥小姐姐,铭记于心,来日必报答。
写在最后:
永远不要放弃自己!
每次面试前做充足的准备,默念:“放轻松放轻松放轻松”;
面试后进行反思总结,默念:“看缘分看缘分看缘分” ~