21个你必懂的数据科学面试问答

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

KDnuggets编辑为20个辨别真伪数据科学家的问题准备了答案,包括什么是正规化、我们喜爱的数据科学家、模型验证等等。

20个辨别真伪数据科学家的问题非常受欢迎——是我们一月份阅读量最高的文章。

然而,这些问题并没有附带答案。因此KDnuggets编辑一起为这些问题编写了参考答案。我也额外增加了一个非常关键的问题——第21个问题,这个问题在原先的20个问题版本中被隐藏了。

以下就是问题的答案。受制于篇幅,我们仅在本文中列出前11个问题的答案。

Q1,解释什么是正规化,以及它为什么很有用。

由Matthew Mayo回答

正规化指向模型中增加一个调谐参数增加平滑度,以防止过度拟合现象发生。

通常情况是向现有的权重向量添加一个乘数常量。通常是L1(Lasso,最小绝对值收敛)或L2(岭回归),但实际上可以是任何的常数。经过正规化之后,模型的预测应当可以最小化方程误差的平均值。

如果你有兴趣,Xavier Amatriain写了一篇比较L1和L2正规化方法的文章,可自行阅读。(原文有链接)

Figure 1 regularization-lp-ball.jpg

图1:Lp球(勒贝格球):随着p值减小,相应的L-p空间也随之减小。

Q2,你最敬佩哪个数据科学家?哪家数据初创公司?

由Gregory Piatetsky回答

这个问题并没有正确答案,但下面是我敬佩的12个数据科学家,排名不分先后。

Figure 2 data-scientist-admired.jpg

Geoff Hinton, Yann LeCun, Yoshua Bengio——在神经网络领域深耕不倦,引领深度学习革命。

Demis Hassabis——他在DeepMind的工作成绩斐然,在Atari游戏和近期AlphaGo中取得优于人类表现的成果。

来自DataKind的Jake Porway和U. Chicago/DSSG的Rayid Ghani——使数据科学能为社会带来益处。

DJ Patil——美国第一位首席数据科学家,运用数据科学使美国政府更加高效地工作。

Kirk D. Borne——他在社交媒体的影响力和领导力令人叹服。

Claudia Perlich——对广告生态系统作出了卓越贡献,2014年KDD担任主席时非常优秀。

Hilary Mason——在Bitly作出了卓越的贡献,并像一个大数据摇滚巨星一样鼓舞他人。

Usama Fayyad——为KDD和数据科学设立了高标准,并展现出领导力,鼓舞了成千上万的同行(也包括我)精益求精。

Hadley Wickham——他对数据科学及R语言的数据可视化作出了大量贡献,包括dplyr、ggplot2、Rstudio。

数据科学领域有大量优秀的初创公司,但为了避免利益冲突我在此就不枚举了。

你可以查阅往期博客了解这些初创公司(原文有链接)。

Q3,如果你建立了一个使用多重回归预测定量数据的模型,你如何验证它?

由Matthew Mayo回答。

模型验证推荐方法:

  • 如果模型预测值偏离目标变量范围太多,几乎可以立即判定是预测水准低,或模型准确性低。

  • 如果预测值看上去还算合理,检验模型的参数:下面的任意一条都表明模型可能预测水平低,或发生多重共线性:和预期值符号相反、出现异常大或者小的值、或者在模型引入新数据的时候出现不一致的情况。

  • 向模型输入新数据进行预测,并将决定系数(R平方值)作为模型有效性的判断依据。

  • 把数据拆分成几个数据集,一部分用于估算模型参数,另一部分用于验证模型。

  • 如果数据的样本量较小,可以使用jackknife重采样方法,用R平方值和均方误差(MSE)权衡模型有效性。

Q4,解释精确率和召回率。以及它们如何跟ROC(接收者操作特征曲线)曲线关联?

由Gregory Piatetsky回答。

KDnuggets有关于这个问题的回答(原文有链接)。

计算精确率和召回率其实很好解释。假设10000个案例中有100个属于阳性。你想预测哪些是阳性,于是选出了其中200个具有较高概率包含这100个阳性案例的案例。你记录下你的预测,并和真实答案进行对比,通过加和得出你的正误。下面是预测结果的四种类型:

  1. TN/ True Negative:样本阴性,也被预测为阴性

  2. TP/ True Positive:样本阳性,也被预测为阳性

  3. FN/ False Negative:样本阳性,但被预测为阴性

  4. FP/ False Positive:样本阴性,但被预测为阳性

这里能理解吧?然后你所拥有的10000个样本均可以归纳到这四个类型里,例如:


预测阴性预测阳性
阴性案例TN: 9760FP: 140
阳性案例FN: 40TP: 60

现在,你的老板问你三个问题:

1,你的预测有百分之多少是正确的?

你答道:正确率是(9760+60)/10000,也就是98.2%

2,你预测到了百分之多少的阳性案例?

你答道:召回率是(60/100),也就是60%

3,预测中有百分之多少是正确的?

你答道:精确率是(60/200),也就是30%

Wikipedia也有一个关于这些术语的很好的解释。

Figure 3 precision-recall-relevant-selected.jpg

图4:精确率和召回率

ROC曲线代表灵敏度(召回率)和特异性(不是精确率)之间的关系,经常用于衡量二元分类的表现好坏。然而,在处理高度扭曲的数据时,精确率-召回率曲线(PR curves)能更好地衡量模型的表现。你也可以参考Quora的回答:ROC曲线和PR曲线的差异是什么?(原文有链接)

Q5,你如何证明你对算法的一个修改是真正的优化,而不是毫无用处的变动?

由Anmol Rajpurohit回答。

我们经常看到追求快速创新(或者说快速成名)的时候严重违反科学性方法的基本原理,导致无效的创新,例如许多洞见并没有经过严格的论证就发布出去。其中一个例子就是题中所说的改善算法获得更好的结果,你可能能想出好几个潜在的方法对算法进行优化。

人类正常的反应都是尽快发布这些想法并且要求尽早实装。当被问到有无数据支持的时候,仅有很少量的信息能提供,很可能受到选择偏差的影响(无论是已知或者未知的),或因为样本量太小而产生误导(用于测试的数据可能多样性不足)。

数据科学家避免让他们的人类情感压过理性逻辑。验证你对算法做出的改变是否真正优化了算法取决于实际的案例,但这里仍有一些通用的建议:

  • 确保在比较性能的时候,所选的数据并没有选择偏差。

  • 确保测试数据足够分散,能代表真实情况下的数据(避免过度拟合)。

  • 确保遵守“控制变量”准则。例如测试性能的时候,测试环境(例如硬件)在运行新旧算法的时候应当是完全一致的。

  • 确保测试是可以重复的。

  • 检验结果反应的是本地最大、最小值,或者是全局最大、最小值。

一个应用上述左右方法的常见手段是A/B测试,两个版本的算法在足够长的时间内运行于相同的环境里,真实的数据被随机分成两组进行处理。这个手段在网页分析运用很广。

Q6,什么是根本原因分析?

由Gregory Piatetsky回答。

根据Wikipedia,

根本原因分析(RCA)是识别问题、错误的根本原因的一种问题解决的方法。如果一个因子在原来的系统中被移除后,不期望发生的结果不会再次发生,那么这个因子就是根本原因。而一个诱因只是对结果产生影响,而非根本原因。

根本原因分析最初用于分析工业意外,但现在已经在各个领域被广泛运用,例如医疗健康、项目管理、或程序测试。

这是明尼苏达州的一个根本原因分析的工具集合。(原文有链接)

本质上,你可以通过反复地问“为什么”来找到一个问题的根源和各个环节的关系,最终找到根本原因。这个技巧常被称为“5个为什么”,即使实际上未必正好问了五个问题。

Figure 4 116208-online-figure1.gif

图表5:5个为什么示例

Q7,你对价格优化、价格弹性、库存管理、竞争情报了解吗?给出一些例子。

由Gregory Piatetsky回答。

这些都是数据科学家很少接触到的经济学术语,但是了解这些词对于数据科学家非常有帮助。

价格优化是用数学工具计算客户对于产品和服务通过不同渠道给出不同定价的反应。

大数据和数据挖掘使量身定制价格优化成为可能。许多公司,例如亚马逊,把优化提高了一个层次,对不同的访问者根据其浏览历史,显示不同的价格。这一做法的公平性目前还存在广泛争议。

价格弹性一般情况下指:

需求价格弹性,价格敏感度的一个指标。

计算如下:

需求价格弹性 = 产品需求量变化的百分比 / 价格变化的百分比

类似地,供给价格弹性表明产品或者服务的供给变动对价格的影响。

库存管理是对订单、库存和生产中所用到的原材料等成分的预测和管理,也包括管理用于销售的完成品的数量。

Wikipedia定义

竞争情报:帮助管理者为组织做出战略性决策的关于产品、客户、竞争者和其他商业信息的定义、收集、分析、传播等行为。

像Google Trends、Alexa、Compete这类的工具可以用于监测大众趋势并在网页上分析你的竞争对手。

这里有一些有用的资源:(原文均有链接)

  • 竞争情报度量、报告 by Avinash Kaushik

  • 37个监视你竞争者最好的工具 from Kissmetrics

  • 10位专家推荐的10个最好的竞争情报工具

Q8,统计力量是什么?

由Gregory Piatetsky回答。

Wikipedia把统计力量和灵敏度定义为一个二元假设检验,给出在备择假设(H1)为真的情况下拒绝零假设(H0)的概率。

换一句话来所,统计力量是当某个影响存在时检测出这个影响的概率。统计力量越高,犯第二类错误的概率越小。

这里有一些工具计算统计力量(原文有链接)

Q9,解释重采样是什么,为什么有用?以及它们的限制条件。

由Gregory Piatetsky回答。

经典的统计参数测试比较观测得到的数据和理论的数据分布。重采样是一种数据驱动,而非理论驱动的方法,基于对同一样本反复采样。

重采样指做以下任一处理的方法:

  • 使用数据的子集(jackknifing)或随机替换掉一些数据点(bootstrapping)来估算一个数据样本的精度(中位数、方差、百分数)

  • 在进行显著性检验时交换数据的标签(置换测试,也称为精确检验、随机化测验、或重随机化测验)。

  • 用随机的子集验证模型(交叉验证)。

可以去Wikipedia查阅更多信息。

Q10, 假阳性结果太多和假阴性结果太多,哪个更好?解释。

由Devendra Desale回答。

这取决于我们要解决的问题的领域。

在医疗测试中,假阴性结果可能会为医生、病人提供误导信息,认为病症已不存在,但事实上并非如此。这可能导致对病人和某一类疾病的治疗不足,或不正确的疗法。因此,在此类情况下假阳性多更好。

对于过滤垃圾邮件,假阳性结果会导致过滤系统把合法的电子邮件归类为垃圾邮件,阻止此类邮件送达。在大多数垃圾邮件过滤系统都能过滤掉相当一部分的垃圾邮件的时候,确保不产生假阳性判断是用户更加需求的功能。在这种情况下,增加假阴性比假阳性好。

Q11,什么是选择偏差,它为什么很重要,以及我们如何避免它?

由Matthew Mayo回答。

选择偏差,总的来说是误差因为非随机性取样的样本被引入的情形。例如,一个拥有100个样本的测试案例,分别由数量为60、20、15、5的四个类型组成,但实际上在总体里,四个类型的数量几乎相同。这会导致模型在预测时作出错误的假设。避免非随机采样是解决偏差的最好方法。然而,当实际情况不允许随即采样时,重采样、提升方法和权重法都是可以用来避免选择偏差的方式。


英文原文:http://www.kdnuggets.com/2016/02/21-data-science-interview-questions-answers.html
译者:shambala
 

2月15日11:00到13:00网站停机维护,13:00前恢复
iPy智能助手 双击展开
查看更多聊天记录
(Ctrl+回车)换行