一文总结机器学习类面试问题与思路

简介: 7月9日 19:00-21:30 阿里云开发者社区首场“Offer 5000”直播开启!15位团队技术大牛在线招人,更有《阿里云技术面试红宝书》助你拿下Offer!马上投递简历:https://developer.aliyun.com/special/offerday01

图片无法显
点击图片或戳我查看详情和投简历
机器学习、大数据相关岗位根据业务的不同,岗位职责大概分为:

一、平台搭建类

数据计算平台搭建,基础算法实现,当然,要求支持大样本量、高维度数据,所以可能还需要底层开发、并行计算、分布式计算等方面的知识。

二、算法研究类

文本挖掘,如领域知识图谱构建、垃圾短信过滤等;
推荐,广告推荐、APP 推荐、题目推荐、新闻推荐等;
排序,搜索结果排序、广告排序等;
广告投放效果分析;
互联网信用评价;
图像识别、理解。

三、数据挖掘类

商业智能,如统计报表;
用户体验分析,预测流失用户。

以上是根据求职季有限的接触所做的总结。有的应用方向比较成熟,业界有足够的技术积累,比如搜索、推荐,也有的方向还有很多开放性问题等待探索,比如互联网金融、互联网教育。在面试的过程中,一方面要尽力向企业展现自己的能力,另一方面也是在增进对行业发展现状与未来趋势的理解,特别是可以从一些刚起步的企业和团队那里,了解到一些有价值的一手问题。
 
以下首先介绍面试中遇到的一些真实问题,然后谈一谈答题和面试准备上的建议。

四、面试问题

你在研究/项目/实习经历中主要用过哪些机器学习/数据挖掘的算法?
你熟悉的机器学习/数据挖掘算法主要有哪些?
你用过哪些机器学习/数据挖掘工具或框架?
基础知识
无监督和有监督算法的区别?
SVM 的推导,特性?多分类怎么处理?
LR 的推导,特性?
决策树的特性?
SVM、LR、决策树的对比?
GBDT和决策森林的区别?
如何判断函数凸或非凸?
解释对偶的概念。
如何进行特征选择?
为什么会产生过拟合,有哪些方法可以预防或克服过拟合?
介绍卷积神经网络,和 DBN 有什么区别?
采用 EM 算法求解的模型有哪些,为什么不用牛顿法或梯度下降法?
用 EM 算法推导解释 Kmeans。
用过哪些聚类算法,解释密度聚类算法。
聚类算法中的距离度量有哪些?
如何进行实体识别?
解释贝叶斯公式和朴素贝叶斯分类。
写一个 Hadoop 版本的 wordcount。
……

五、开放问题

给你公司内部群组的聊天记录,怎样区分出主管和员工?
如何评估网站内容的真实性(针对代刷、作弊类)?
深度学习在推荐系统上可能有怎样的发挥?
路段平均车速反映了路况,在道路上布控采集车辆速度,如何对路况做出合理估计?采集数据中的异常值如何处理?
如何根据语料计算两个词词义的相似度?
在百度贴吧里发布 APP 广告,问推荐策略?
如何判断自己实现的 LR、Kmeans 算法是否正确?
100亿数字,怎么统计前100大的?
……

答题思路

一、用过什么算法?

最好是在项目/实习的大数据场景里用过,比如推荐里用过 CF、LR,分类里用过 SVM、GBDT
一般用法是什么,是不是自己实现的,有什么比较知名的实现,使用过程中踩过哪些坑;
优缺点分析。

二、熟悉的算法有哪些?

基础算法要多说,其它算法要挑熟悉程度高的说,不光列举算法,也适当说说应用场合;
面试官和你的研究方向可能不匹配,不过在基础算法上你们还是有很多共同语言的,你说得太高大上可能效果并不好,一方面面试官还是要问基础的,另一方面一旦面试官突发奇想让你给他讲解高大上的内容,而你只是泛泛的了解,那就傻叉了。

三、用过哪些框架/算法包?

主流的分布式框架如 Hadoop,Spark,Graphlab,Parameter Server 等择一或多使用了解
通用算法包,如 mahout,scikit,weka 等;
专用算法包,如 opencv,theano,torch7,ICTCLAS 等。

四、基础知识

个人感觉高频话题是 SVM、LR、决策树(决策森林)和聚类算法,要重点准备;

算法要从以下几个方面来掌握:

产生背景,适用场合(数据规模,特征维度,是否有 Online 算法,离散/连续特征处理等角度);
原理推导(最大间隔,软间隔,对偶);
求解方法(随机梯度下降、拟牛顿法等优化算法);
优缺点,相关改进;
和其他基本方法的对比;
不能停留在能看懂的程度,还要对知识进行结构化整理,比如撰写自己的 cheet sheet,我觉得面试是在有限时间内向面试官输出自己知识的过程,如果仅仅是在面试现场才开始调动知识、组织表达,总还是不如系统的梳理准备;
从面试官的角度多问自己一些问题,通过查找资料总结出全面的解答,比如如何预防或克服过拟合。

五、开放问题

由于问题具有综合性和开放性,所以不仅仅考察对算法的了解,还需要足够的实战经验作基础;
先不要考虑完善性或可实现性,调动你的一切知识储备和经验储备去设计,有多少说多少,想到什么说什么,方案都是在你和面试官讨论的过程里逐步完善的,不过面试官有两种风格:引导你思考考虑不周之处 or 指责你没有考虑到某些情况,遇到后者的话还请注意灵活调整答题策略;
和同学朋友开展讨论,可以从上一节列出的问题开始。

准备建议

一、基础算法复习两条线

材料阅读 包括经典教材(比如 PRML,模式分类)、网上系列博客(比如 研究者July的“结构之法,算法之道”),系统梳理基础算法知识;
面试反馈 面试过程中会让你发现自己的薄弱环节和知识盲区,把这些问题记录下来,在下一次面试前搞懂搞透。

二、除算法知识,还应适当掌握一些系统架构方面的知识,可以从网上分享的阿里、京东、新浪微博等的架构介绍 PPT 入手,也可以从 Hadoop、Spark 等的设计实现切入。

三、如果真的是以就业为导向就要在平时注意实战经验的积累,在科研项目、实习、比赛(Kaggle,Netflix,天猫大数据竞赛等)中摸清算法特性、熟悉相关工具与模块的使用。

总结

如今,好多机器学习、数据挖掘的知识都逐渐成为常识,要想在竞争中脱颖而出,就必须做到:
  
保持学习热情,关心热点;
深入学习,会用,也要理解;
在实战中历练总结;
积极参加学术界、业界的讲座分享,向牛人学习,与他人讨论。
最后,希望自己的求职季经验总结能给大家带来有益的启发。

原文发布时间为:2018-08-02
本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
7天前
|
前端开发 算法 Java
当面试官问出“Unsafe”类时,我就知道这场面试废了,祖坟都能给你问出来!
【5月更文挑战第21天】当面试官问出“Unsafe”类时,我就知道这场面试废了,祖坟都能给你问出来!
19 1
|
10天前
|
Java
java面试基础 -- 普通类 & 抽象类 & 接口
java面试基础 -- 普通类 & 抽象类 & 接口
17 0
|
13天前
|
运维 关系型数据库 MySQL
【运维面试100问】(三)说说你在故障排除方面的经历_运维面试故障排查类面经
【运维面试100问】(三)说说你在故障排除方面的经历_运维面试故障排查类面经
【运维面试100问】(三)说说你在故障排除方面的经历_运维面试故障排查类面经
|
13天前
|
运维 监控 Linux
【运维面试100问】(三)说说你在故障排除方面的经历_运维面试故障排查类面经(1)
【运维面试100问】(三)说说你在故障排除方面的经历_运维面试故障排查类面经(1)
【运维面试100问】(三)说说你在故障排除方面的经历_运维面试故障排查类面经(1)
|
13天前
|
机器学习/深度学习 数据采集 算法
2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果
2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果
2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果
|
13天前
|
Java 程序员 C语言
2024年Python最新【Python学习教程】Python类和对象_python中类和对象的讲解,Python最新面试题
2024年Python最新【Python学习教程】Python类和对象_python中类和对象的讲解,Python最新面试题
2024年Python最新【Python学习教程】Python类和对象_python中类和对象的讲解,Python最新面试题
|
17天前
|
设计模式 算法 Java
Java的前景如何,好不好自学?,万字Java技术类校招面试题汇总
Java的前景如何,好不好自学?,万字Java技术类校招面试题汇总
|
19天前
|
机器学习/深度学习
机器学习 —— 分类预测与集成学习(下)
机器学习 —— 分类预测与集成学习(下)
|
19天前
|
机器学习/深度学习 数据采集 数据可视化
机器学习 —— 分类预测与集成学习(上)
机器学习 —— 分类预测与集成学习
|
19天前
|
Java
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
30 0