社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

备战春招 | 120 道机器学习面试题!

数据分析1480 • 5 年前 • 434 次点击  

大数据文摘出品

来源:Github

编译:陆震、张秋玥、蒋宝尚


直到今天,在各类媒体口中,数据科学家依然是“21世纪最性感的职业”。但事实上,希望进入这个行业的初级数据科学家已经供过于求


可以预见的是,各种高校相关专业的毕业生,在完成coursera或者fast.ai的课程后,都希望得到一份跟“数据”相关的岗位。据统计,部分职位的供求比已经达到了1:200。


那么,如何能在这条独木桥上杀出重围、脱引而出呢?


金三银四求职季,江湖传言在三月份和四月份找工作和跳槽成功的概率最大。不同于程序员这样的纯技术工种,求职成为一名数据科学家似乎需要“上知天文,下知地理”。


毕竟,数据科学领域集成了多种不同元素,包括信号处理,数学,概率模型技术和理论,机器学习,计算机编程,统计学,数据工程,模式识别和学习,可视化,不确定性建模,数据仓库,以及从数据中析取规律和产品的高性能计算。


今天文摘菌会给大家推荐一份数据科学面试资料,资料收集了来自顶级技术公司的访调员和数据科学家。从浅入深的囊括了沟通、数据分析、模型预测、编程、概率、产品指标等7个部分的共120个面试问题


根据官方网站,这份资源由Max、Carl、Henry以及William四位合作编写,这四位好基友都有数学科学以及数据分析的背景,也非常互补,也因此让这份资料变得弥足珍贵。


这份资料,在官方网站上需要付19美元可以获取完整版(包括问题和答案)。


先放上资料官网,非常需要的读者请购买支持正版哦👇

https://www.datasciencequestions.com/


当然,如果你只是想了解这份资料的大概内容,或者测试一下自己是否掌握了数据科学家需要的知识,文摘菌在github上也找到了这份资料的缩略问题版,少部分概念以及定义性的问题有答案,对于开放性的问题,欢迎大家在留言区给出你的答案哦。


文摘菌精选了这份资料中的部分问题和答案,完整版戳下边链接自取。


github地址:

https://github.com/kojino/120-Data-Science-Interview-Questions


沟通



1.向我解释一个与你正在面试的角色相关的技术概念。


2.向我介绍你所热爱的事情。


3.你会如何向没有统计背景的工程师解释A/B测试,线性回归呢?

  • A/B测试,也就是多变量测试,通过测试用户的不同体验,来确定哪种改变有助于企业更加有效地实现其目标(如增加转换等)。它可以是网站上的文本信息,按钮的颜色,不同的用户界面,不同的电子邮件主题行,号召性用语,优惠等。


4.你会如何向没有统计背景的工程师解释置信区间以及95%的置信度的意思?

  • 参考链接:https://www.quora.com/What-is-a-confidence-interval-in-laymans-terms


5.你会如何向一组高级管理人员解释为什么数据很重要?


数据分析



1.给定一个数据集,分析这个数据集并告诉我你可以从中了解到什。


2.什么是R2?可能比R2更好的指标有哪些,为什么?

答:拟合良好,是由该回归/总方差解释的那部分方差;你添加的预测变量越多,R^2越大;因而使用因自由度调整的R ^ 2;或着训练误差指标。


3.什么是维度灾难?

  • 高维度使得聚类变得困难,因为拥有大量维度意味着彼此相差很大。例如,为了覆盖一小部分数据,随着变量数量的增加,我们需要处理每个范围广泛的变量;

  • 所有样本都靠近样本的边缘。这非常糟糕,因为在训练样本的边缘附近做出预测要更加困难;

  • 随着维度 p的增加,采样密度呈指数下降,因此在没有更多的数据量的情况下,该数据会变得更加稀疏;我们应该进行PCA分析以降低维度。



4.更多的数据就总是更好么?

  • 从统计来说,它取决于你的数据的质量,如果您的数据有偏差,获取再多数据也毫无用处;它取决于你的模型。如果你的模型能够承受高偏差,获取更多数据不会太过明显地提高你的测试结果。你需要添加更多特征,或者做别的处理。从实战来说,也需要在拥有更多数据和额外存储,计算能力以及所需内存之间进行权衡。因此,始终要考虑拥有更多数据的成本。


5.分析数据之前绘制图表有什么好处?

  • 数据集会有错误。你不会找到全部的错误,但你或许能够找到其中的一些。比如那个212岁的男人以及那个9英尺高的女;变量会有偏度,异常值等。算术平均值可能用不了,这也意味着标准差用不了;变量可以是多峰的!如果变量是多峰的,那么任何基于其的均值或着中位数的都是可疑的。


模型预测(19个问题)



1.给定一个数据集,分析这个数据集并给出一个可以预测这个响应变量的模型。

  • 由拟合简单的模型(多元回归,逻辑回归)开始,相应地选取一些特征,然后尝试一些复杂的模型。要始终将数据集拆分为训练集,验证集和测试集并使用交叉验证来观察模型的表现;确定问题是分类问题还是回归问题;倾向于选用运行快速可以轻松解释的简单模型;提及交叉验证作为评估模型的一种方法;绘制图表且将数据可视化。


2.如果测试数据的分布与训练数据的分布明显不同,可能会出现什么问题?

  • 训练时具有高精度的模型在测试时可能具有较低的精度。在没有进一步了解的情况下,很难知道哪个数据集代表了总体的数据,因而很难测量算法的泛化程度;

  • 这应该可以通过重复划分训练集和测试集来缓解(如交叉验证);

  • 当数据分布发生变化时,称为数据集漂移。 如果训练数据和测试数据的分布不同,分类器可能会过度拟合训练数据。


3.有什么方法可以让我的模型对异常值的鲁棒性更高?

  • 我们可以使用L1或L2等正则化方法来减少方差(增加偏倚)。

  • 算法的改变:1.使用基于树的方法来代替回归方法,因为它们更能忍受异常值。2.对于统计检验,使用非参数检验来代替参数检验。3.使用稳健的误差指标,如MAE或Huber Loss,来代替MSE。

  • 数据的改变:1.对数据进行winsorize处理2.转换数据(如进行对数处理)3.只有在你确定它们是不值得预测的异常值时才删除它们


4.与最小化误差绝对值的模型相比,在最小化误差平方的模型中,你认为有哪些差异?每个误差指标分别在哪种情况下合适?

  • MSE对异常值更加严格。在这个意义上MAE鲁棒性更好,但也更难以拟合模型,因为它无法在数值上进行优化。因此,当模型的可变性较小且在计算上容易拟合时,我们应该使用MAE,否则应该使用MSE。

  • MSE:更容易计算梯度

  • MAE:计算梯度需要线性编程MAE对异常值更加稳健。

  • 如果较大错误造成的后果很严重,使用MSEMSE相当于最大化高斯随机变量的可能性。


5.你会什么误差指标来评估二分类器的好坏?如果类别不平衡怎么办?如果超过2组怎么办?

  • 准确性:你正确预测的情况的比例。优点:直观,易于解释,缺点:当类标签不平衡且数据信号较弱时效果不。

  • AUROC:在x轴上绘制fpr,在y轴上绘制tpr以获得不同的阈值。给定随机正例和随机负例,AUC是你能可以识别类别的概率。优点:在测试分类能力时效果很好,缺点:不能将预测解释为概率(因为AUC由排名决定),因此无法解释模型的不确定性。

  • logloss/deviance:优点:基于概率的误差度量,缺点:对假阳性,假阴性非常敏感。当有超过2组时,我们可以使用k个二分类并将它们添加到logloss中。 像AUC这样的一些指标仅适用于二分类情况。


概率



1.阿米巴虫波波生0个、1个或2个小阿米巴虫的概率分别是25%、25%以及50%。这些小阿米巴虫们的繁殖能力也都一样。请问波波的后代灭绝的概率是多少?

  • p=1/4+1/4p+1/2p^2 => p=1/2


2.任何15分钟时间段内,你看到至少一颗流星的概率是20%。请问在一小时内你看到至少一颗流星的概率是多少?

  • l  1-(0.8)^4。 或者我们用泊松过程也可以解。


3.仅使用一枚色子,你如何生成一个1-7内随机数?

  • 丢三次色子:每一次丢的都是结果的第n位

  • 每次丢色子时,如果值为1-3,则记录0,否则记录1。结果会位于0(000)与7(111)之间,均匀分布(因为这三次抛掷互相独立)。如果得到0则重复抛掷:该过程会终止于均匀分布的值。


4.有一个数据集包含来自两个正态分布的数值。两个分布的标准差相同。来自两个分布的数据点个数相同。请问如果想要该数据集呈双峰分布,两个分布的均值应当至少差多少?

  • 多于两个标准差


5.提供已知正态分布的样本值,请问你能如何模拟一个均匀分布的样本值?

  • 将值代入同一随机变量的累计分布函数


6.一对夫妻告诉你他们有两个小孩,其中至少有一个是女孩。请问他们拥有两个女儿的概率是多少?

  • 1/3


产品指标



1.对于一个广告驱动的消费者产品(比如Buzzfeed,YouTube,Google搜索等),什么可以称为好的成功衡量指标?服务驱动的消费者产品(比如优步,Flickr,Venmo等)呢?

  • 广告驱动:页面浏览量与每日活跃量,点击率,每次点击成本

  • 服务驱动:购买量,转化率


2.对于一个效率工具(比如印象笔记,Asana,Google文档等),什么可以称为好的成功衡量指标?线上课程平台(比如edX,Coursera,Udacity等)呢?

  • 效率工具:付费订阅用户数

  • 线上课程平台:付费订阅用户数,课程完成率


3.对于一个电商产品(比如Etsy,Groupon,Birchbox等),什么可以称为好的成功衡量指标?订阅产品(比如Netflix,Birchbox,Hulu等)呢?高级付费订阅(比如OKCupid,领英,Spotify等)呢?

  • 电商产品:购买量,转化率,时/日/周/月/季/年销售额,售出产品成本,存货量,网站流量,净回头客量,客服电话量,平均解决问题时长

  • 订阅产品:流失量,(不知道接下来这几个都是啥)

  • 高级付费订阅:(无解答)


4.对于高度依赖于用户投入与交互的消费者产品(比如Snapchat,Pinterest,Facebook等),什么可以称为好的成功衡量指标?通讯产品(比如GroupMe,Hangouts,Snapchat等)呢?

  • 高度依赖于用户投入与交互的消费者产品:user AU ratios,分类型邮件汇总,分类型推送通知汇总,复活率。

  • 通讯产品:(无解答)


5.对于拥有app内购服务的产品(比如Zynga,愤怒的小鸟以及许多其他游戏),什么可以称为好的成功衡量指标?

  • 用户/付费用户平均营收


编程(14题)



1.编写一个函数,计算2n个用户所有可能分配向量,其中n个用户为控制组,n个用户为治疗组。

  • 递归编程


2.提供一个包含推特消息的列表,求十个最常用的的标签。

  • 在字典中存储所有标签然后求前十值


3.在给定时间内写出算法求解背包问题的最佳近似解。

  • 贪婪算法


4.在给定时间内写出算法求解旅行商问题的最佳近似解。

  • 贪婪算法


5.你将得到一个大小为n的数据集,但你无法提前知道n具体有多大。写出一个占据O(k)的算法来随机抽取k个元素。

  • 水塘抽样


统计推论(15题)



1.AB测试中你如何确认客户流分组完全随机?

  • 画出多个A组与B组变量的分布,确保他们都拥有一致的形状。再保险一点,我们可以做一个排列检验来看分布是否相同。

  • MANOVA来比较不同的均值。


2.AA测试(两组完全一致)的好处有什么?

  • 检查抽样算法随机性


3.在AB测试中,允许一组用户知道另一组是什么样子有什么危害?

  • 用户可能无法与未知其他选项时行为一致。实际上你是在添加一个关于是否允许用户窥探其它选项的变量——该变量并不随机。


4.如果某个博客报道了你的实验组会有什么影响呢?

  • 与前问相同。这一问题可能会在更大范围内发生。


5.你如何设计一个允许用户自行选择是否加入的AB测试。


最后,祝大家求职顺利~


github地址:

https://github.com/kojino/120-Data-Science-Interview-Questions


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/31027
 
434 次点击