【机器学习面试终极通关指南】从打造性感履历到跨越面试三大关卡

来源:Reddit

编译:费欣欣,胡祥杰

【新智元导读】 机器学习工程师薪资水涨船高,在国内,毕业生的平均年薪也达到了30-50万,一些人拿到了上百万的薪资。不过,如何通过面试,拿到更高的薪资,确实不少从业者头疼的问题。我们整理了国外网站上对这一话题的相关讨论,从基本的履历(简历)打造开始,到面试准备,面试中会遇到的问题以及小贴士等一应俱全。

Reddit上最近的一个比较火热的讨论是,在工业界工作的机器学习/数据科学工程师如何打造一份漂亮的工作成果履历(portfolio)?

用户_Julia提问:我是一名数据科学工程师,想专注于这个领域好好发展职业生涯。我做了一些小的分析数据集的开源项目,还发表过一些论文。但我的问题更多是关乎博客、研究论文和开源项目,以及如何在工业界建立Data Science/ML的职业生涯。对此,_Julia介绍了自己的情况,进一步描述了问题:

我打算写博客。虽然我也在FB/Twitter发文表达兴趣和意见,但我想把博客作为展示开源实验的空间。在这种情况下,博客是否跟已有内容重复?(例如,Github上的开源代码,带有Readme文件+关于如何重新构建事物和分享学习经验的博文)。 我在研究中心(R&D)实习过,所以也参与了写作和发表一些论文。作为一名工程师,(应用数据科学)论文对我的职业有帮助吗(论文中不包含新颖的ML思想,而是新颖的ML应用方法)? 如果你是经理、招聘人员或面试官,你想从数据科学工程师的简历中看到什么?根据我的经验,有些人希望看到更深入的数据科学知识,其他人则想知道有关如何处理、查询和分析数据集的技能。 最后,欢迎分享好的数据科学工作履历的示范及链接。

这个问题得到了大量用户的关注和讨论。新智元摘选了其中点赞最高的建议,来自Reddit用户Artgor。

打造一份性感的工作履历:GitHub超过10000颗星的项目

Artgor建议,如果对博客感兴趣,这是一大份数据科学博客列表:https://github.com/rushter/data-science-blogs

至于漂亮的履历,Artgor表示自己见过下面这几种:

  • 含有jupyter notebooks(或类似方式)的项目,展示你在各个领域的技能,其中最好的一个Github项目,列出了深度学习(TensorFlow, Theano, Caffe, Keras), scikit-learn, Kaggle, 大数据(Spark, Hadoop MapReduce, HDFS), matplotlib, pandas, NumPy, SciPy, Python, AWS 等
  • 含有其他人能够用的package/library;
  • 有一些端到端的项目 Artgor说的这个“其中最好的一个”,在GitHub上有超过10000颗星:

这个GitHub项目展示了

  • 深度学习
    • tensorflow
    • theano
    • keras
    • caffe
  • scikit-learn
  • statistical-inference-scipy
  • pandas
  • matplotlib
  • numpy
  • python-data
  • kaggle-and-business-analyses
  • spark
  • mapreduce-python
  • amazon web services
  • command lines
  • misc
  • notebook-installation
  • credits
  • contributing
  • contact-info
  • license

样本履历:工业界关注什么?

Artgor提供了自己的履历展示,并表示这在他当年找工作的时候帮了大忙,具体可以看这里:https://erlemar.github.io/

简单看,Artgor的履历表将他所做过的机器学习项目来了个大汇总,分类明晰,介绍也很有条理,我们先大致看一下目录,然后具体看几个细节。

  • 单独项目
    • 手写字符识别
  • 分类问题
    • 泰坦尼克号:关于灾难的机器学习问题
    • Ghouls, Goblins, and Ghosts… Boo!
  • Otto Group产品分类挑战赛
    • 不平均类别
    • 银行卡激活
  • 回归问题
    • 房价预测:高级回归技巧
    • 贷款预测
    • Caterpillar Tube定价
  • 自然语言处理
    • Bag of Words Meets Bags of Popcorn
    • Python NLP:探索日本动漫Fate/Zero
  • 聚类
    • 用KMeans聚类
  • 神经网络
  • 数据探索和分析
  • 推荐系统

浏览上面的目录就能看出,这个人做了不少数据科学/机器学习相关的项目,而且都跟实际应用相关(这对于在工业界工作十分实际)。不仅如此,Artgor在具体介绍时也能直接给出重点,让招聘者和面试官一眼看清,比如在介绍手写数字识别时是这样写的:

这是我自己使用图像识别方法做的一个项目。这是一个网站(也适用于手机),用户可以写一个数字,然后机器学习模型(FNN和CNN)会尝试识别这个输入。模型之后可以使用这些数字进行训练以提高准确性。即时演示版本在这里(给出链接)。代码可以在这里找到(给出链接)。

再比如,介绍分类问题的泰坦尼克号项目时,

给出Github nbviewer, Titanic: Machine Learning from Disaster是Kaggle的一个知识竞赛。很多人都从这个问题开始实践机器学习,我也一样。这是一个二元分类问题:根据泰坦尼克乘客的信息,预测他们是否存活。一般说明和数据可在Kaggle上找到。泰坦尼克号数据集为特征工程提供了有趣的机会。

介绍Otto Group分类竞赛中的银行卡激活项目时,

给出Github nbviewer 银行致力于提供与客户联系的效率。其中一个领域是为现有客户提供新产品(交叉销售)。一个好的方法是,不去向所有客户提供新产品,而是预测那些可能会积极回应的客户,然后将报价发送给那些响应概率高于某个阈值的人。我尝试解决的就是这个问题(给出链接)。

对于jupyter notebooks,Artgor给出的解释是,它们的主要目的是展示作者的想法以及在每个分析阶段发生的事情。当然,在代码和编程方面有更多经验和技巧的人,可以将目标定为写出production ready代码。

用户pegasos1表示自己是位于招聘方的人。pegasos1认为,不是每个人都需要有明确的机器学习背景(许多先驱也没有,因为领域还相当新)。重要的是数学好,在深层次上理解一些基本的ML技术。阅读论文和书籍很重要,但是他认为只有实现了才能真正算理解一个算法。他的建议是创建Github项目,并且写相应的博客文章介绍,实施算法,争取实现干净可理解的代码,重点是学习和展示领域知识。

参加Kaggle竞赛:什么才是让招聘者真正眼前一亮的重点

此外,可能你已经从上面看出来了,Artgor参加了大量Kaggle竞赛,他本人也表示,尝试Kaggle也是一个好主意。虽然Kaggle竞赛是否能够解决现实生活问题仍然值得商榷,但有些情况下,参加竞赛肯定是有用的。

确实,随着Kaggle归到谷歌旗下,有了更多的资源,上面举办的竞赛也越来越贴近实际,业界对Kaggle竞赛的认可也有一定提高。

但是,仍然有人犀利地指出,Kaggle竞赛无法衡量以下几项能力——用户thatguydr表示,Kaggle竞赛无法证明

  • 你进行实验的能力
  • 你与他人合作的能力
  • 你能够提出用其他的方式改善业务的能力
  • 实际部署生产系统的能力
  • 维护生产系统的能力
  • 在一系列限制(如低内存,CPU,带宽或HD)下工作的能力
  • 了解为什么模型的某些方面可以解决某些问题以及如何在必要时修改它们的能力
  • 跟上最新研究文献的能力

不过,反过来看,正好能看出工业界看重的就是上面这些因素。因此,在构建履历时,突出以上重点,保准没错。

怎样才能不搞砸机器学习面试(小Tips)

以下是机器学习工程师、教师和企业家Christopher Dossman在Medium上写的机器学习面试指南,有一些有用的小贴士:

拿到一个面试机会通常很容易,但是想不搞砸一般都挺难的。

最近, 我收到了许多关于机器学习面试的问题。长久以来,我一直没法很好地回答这些问题,因为从大学开始,我并没有接受过一场标准的面试。所以,我开始接受一些面试的邀请。在经历了几次面试以后,我已经找到了一些常见的模式,这对于大家可能是有用的。其中一些模式是专门面向技术性的职位面试的。

在这趟“发现”之旅中,我发现机器学习面试和其他许多技术领域一样,可以分成三个主要的部分:事实调查、技术知识、代码测试。

实况调查

事实调查面试通常正如其名字所表示的那样,你会问一些关于公司情况的问题,公司的代表也会问你一些问题。我特别想强调的是,这一部分的面试并不会刷掉人,而是让你了解公司,所以不要想太多。这一部分的面试很容易,诚实地告知他们你想要的和你正在寻找的东西是什么,你会做得很好。

技术知识

技术知识面试是关于特定技术和项目的开放式讨论。最常见的方法似乎是对你之前做过的项目的问答,并对用于解决问题的方法进行了质疑。假设你遵循我的学习机器学习的方法(地址:https://medium.com/ai%C2%B3-theory-practice-business/best-method-to-learn-essential-machine-learning-skills-fast-533e30f3023d),这个面试很容易通过。当你经历了几个从零到一的项目,你就可以获得所有你需要的知识来回答面试官会问到的问题。

作为练习,想一想你已经完成的一个项目,尝试回答以下问题:

  • 你为什么要选择这个方法来解决问题?
  • 你如何处理丢失的数据?
  • 你能不能解释你在项目中遇到的问题,你是如何解决它们的?
  • 如果再做一遍,你会尝试不同的方法吗?如果是的,为什么?

如果你能回答这些问题,那么恭喜你通过了这部分面试。

我想强调,重要的不仅仅是要有项目,还应该有多样化的项目。我得到的很多反馈意见是,我所有的项目都在技术上令人印象深刻,专注于深度学习系统,但是我对于更传统的机器学习算法还没有什么经验。

小贴士:不要过度在意这一部分的面试,如果你曾经解决过一些问题,你就能获得需要的所有问题。

代码面试

我在别人的注视下一般都没法做一个出色的编码者。不言而喻,在这部分的面试,我做得很糟糕。老实说,这可能是我生命中最尴尬的时刻之一。即使是一个几乎没有从头至尾做完一个项目的人,也很容易就能轻松解决问题,因此您可以为代码面试所代表的独特情况做好准备。

在常见的面试中,面试官会要求你执行一个简单的任务。你要做的是分解问题并制定一个算法,然后用你想要的编程语言实现该算法。如果你有额外的时间,你可以用不同的方法改善或尝试解决问题。

代码这部分是最重要的,要提前做好准备,否则可能会功亏一篑。

原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2017-11-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据科学与人工智能

【数据挖掘】金融行业的数据挖掘之道

工商银行文本挖掘技术应用探索分享 工商银行在大家传统的印象当中是一个体形非常庞大但是稳步前行的形象,但是近些年来在大数据的挑战下工商银行积极应对外界变化,做一些...

27250
来自专栏CDA数据分析师

「CDAS 在线」央企财会到数据分析师的华丽转变

原作者 CDA 数据分析师 去年的CDAS 2016 第三届中国数据分析师行业峰会上,有一个比较特别的分论坛。这个论坛的嘉宾有些原本并不是业内人士,但经...

22760
来自专栏数据派THU

独家 | 一文读懂社交网络分析-下(应用、前沿、学习资源)

本文主要阐述: 社交网络分析的应用 社交网络前沿研究 学习资料 参考资料 浏览前三章的内容请见上篇(2017年9月26日头条)。 四. 社交网络分析的应用 1....

427110
来自专栏人工智能快报

人工智能唇语阅读能力超过人类

在数据处理和文件归档方面,机器的表现已经超过人类,如今机器还具备了唇语识别能力。 据英国《每日邮报》报道,英国一个研究团队开发了一款唇语阅读计算机程序,其能力甚...

40260
来自专栏about云

什么阻碍了强人工智能的发展

问题导读 1.哪些问题阻碍了人工智能的发展? 2.这些问题出现的原因是什么? 导读 当今科学虽然非常发达了,但还是没能很好的理解和解释我们的世界。三...

38970
来自专栏互联网数据官iCDO

运营研究的3个方法:过程法、要素法、分类法

作者:平章大人 全文共 2582 字 7 图,阅读需要 7 分钟 ———— / BEGIN / ———— 研究了这么久的营销和运营,我越发深刻地认可一句话:“上...

31970
来自专栏AI科技评论

学界 | FAIR 实验室的 ICLR 2017:理解对话是一场漫长的博弈

AI科技评论按:在 ICLR 2017 举办之际,FAIR实验室撰文展示了团队在理解对话所做的研究和贡献,AI科技评论进行编译,未经许可不得转载。 建立一个有效...

36670
来自专栏机器之心

观点 | 低门槛究竟是深度学习的危机,还是契机?

选自reddit 机器之心编译 参与:黄小天、刘晓坤 近日,Reddit 上出现了一个颇有争议性的问题,提问者怀疑深度学习的低门槛会破坏这个领域的声誉,业余者的...

31470
来自专栏杨建荣的学习笔记

技术学习的一些建议

所以我们总是在不断的学习中,这个技能的迭代速度早就远超大学的学习内容。相比来说,现在我们学习更加追求高效和通俗,即学到的技能相同,但是学习的内容能用大白...

11920
来自专栏IT大咖说

从算法到应用,新零售背后的推荐系统

内容来源:2018 年 05 月 26 日,袋鼠云高级算法专家尼奥在“AICAMP人工智能沙龙(杭州)”进行《新零售推荐系统:从算法到应用》演讲分享。IT 大咖...

35440

扫码关注云+社区

领取腾讯云代金券