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

简介: 7月9日 19:00-21:30 阿里云开发者社区首场“Offer 5000”直播开启!15位团队技术大牛在线招人,更有《阿里云技术面试红宝书》助你拿下Offer!马上投递简历:https://developer.aliyun.com/special/offerday01
图片无法显 **点击图片或戳我查看详情和投简历** 导读: 机器学习工程师薪资水涨船高,在国内,毕业生的平均年薪也达到了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),这个面试很容易通过。当你经历了几个从零到一的项目,你就可以获得所有你需要的知识来回答面试官会问到的问题。

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

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

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

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

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

      代码面试

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

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

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


      原文发布时间为:2017-11-24

      本文作者:费欣欣,胡祥杰

      本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号

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

      相关文章
      |
      7月前
      |
      机器学习/深度学习 人工智能 算法
      机器学习笔试面试之图像数据不足时的处理方法、检验方法、不均衡样本集的重采样
      机器学习笔试面试之图像数据不足时的处理方法、检验方法、不均衡样本集的重采样
      91 0
      |
      1月前
      |
      机器学习/深度学习 数据采集 Python
      Python机器学习面试:Scikit-learn基础与实践
      【4月更文挑战第16天】本文探讨了Python机器学习面试中Scikit-learn的相关重点,包括数据预处理(特征缩放、缺失值处理、特征选择)、模型训练与评估、超参数调优(网格搜索、随机搜索)以及集成学习(Bagging、Boosting、Stacking)。同时,指出了常见错误及避免策略,如忽视数据预处理、盲目追求高精度、滥用集成学习等。掌握这些知识点和代码示例,能帮助你在面试中展现优秀的Scikit-learn技能。
      40 5
      |
      27天前
      |
      机器学习/深度学习 数据采集 算法
      2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果
      2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果
      2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果
      |
      1月前
      |
      算法
      覃超老师 算法面试通关40讲
      无论是阿里巴巴、腾讯、百度这些国内一线互联网企业,还是 Google、Facebook、Airbnb 等硅谷知名互联网公司,在招聘工程师的过程中,对算法和数据结构能力的考察都是重中之重。本课程以帮助求职者在短时间内掌握面试中最常见的算法与数据结构相关知识点,学会面试中高频算法题目的分析思路,同时给大家从面试官的角度来分析算法题的解答技巧,从而更有效地提升求职者的面试通过率。
      18 3
      覃超老师 算法面试通关40讲
      |
      1月前
      |
      开发框架 算法 Java
      28天读完349页,这份阿里面试通关手册,助我闯进字节跳动
      今年的面试比往年要难得多,各个互联网企业对于Java岗位的要求越来越多,也越来越高,主要是初级岗位已经趋近饱和,但高级岗位又相对来说缺乏,这类的人才偏少,因此作为Java开发人员,我们应该思考的是怎么去往高级人才发展,而不是转学其他语言,要懂得去成为金字塔顶端的人,而不是逃避一直做基层的人。
      |
      1月前
      |
      机器学习/深度学习 自然语言处理 算法
      百度2024校招机器学习、数据挖掘、自然语言处理方向面试经历
      百度2024校招机器学习、数据挖掘、自然语言处理方向面试经历
      164 2
      |
      6月前
      |
      运维 Java 中间件
      离谱!阿里面试官嫌面试者技术差,竟彻夜怒肝524页面试通关手册
      又到了“金三银四”面试求职高峰期,在金三银四时也参与过不少面试,2021都说工作不好找,也是对开发人员的要求变高。前段时间自己有结合GitHub高频面试资料整理了一些Java后端开发面试常问的高频考点问题做成一份PDF文档(1000道高频题),同时也整理一些图文解析及笔记,今天在这免费分享给大家,希望大家在即将的十月面试做好复习,长期的积累和短期的突击让自己能找到一个满意的工作!
      |
      7月前
      |
      机器学习/深度学习 算法 数据可视化
      机器学习面试笔试之特征工程、优化方法、降维、模型评估2
      机器学习面试笔试之特征工程、优化方法、降维、模型评估
      83 0
      |
      11天前
      |
      存储 算法 Java
      JAVA后端开发面试题库
      JAVA后端开发面试题库
      19 1
      |
      15天前
      |
      缓存 安全 Java
      【Java面试——并发基础、并发关键字】
      随着硬件指令集的发展,我们可以使用基于冲突检测的乐观并发策略: 先进行操作,如果没有其它线程争用共享数据,那操作就成功了,否则采取补偿措施(不断地重试,直到成功为止)。这种乐观的并发策略的许多实现都不需要将线程阻塞,因此这种同步操作称为非阻塞同步。 乐观锁需要操作和冲突检测这两个步骤具备原子性,这里就不能再使用互斥同步来保证了,只能靠硬件来完成。硬件支持的原子性操作最典型的是: 比较并交换(Compare-and-Swap,CAS)。CAS 指令需要有 3 个操作数,分别是内存地址 V、旧的预期值 A 和新值 B。当执行操作时,只有当 V 的值等于 A,才将 V 的值更新为 B。