【导语】本文分为两个部分,第一部分是quora上很火的一篇问答--【20个分辨真假数据科学家的问题】中赞赏数最高的回答,第二部分则是KDnuggets阅读量非常高的一篇文章【KDnuggets编辑们针对这20个问题给出的回答】。前者由大数据文摘团队选稿翻译校对后,呈现在各位读者面前。后者授权转载自计算广告(Comp_Ad)译者白雪、龙星镖局,原载于KDnuggets。本次将分散于不同地址的相关资源整合推送,希望更有利于有兴趣读者的学习,别忘了【评论区】给我们留言你的体会、收获、以及建议喔!
分辨真假数据科学家的20个问题
在读答案之前,先来看看这20个问题,并试着自己作答。回答可能包含有数学公式或少量代码(R, Python, SQL等),而不只是泛泛而谈的模糊内容。
或许你可以试着把“我不知道,但我可以从阅读以下内容开始……”作为你答案的一部分,因为这也是在测试候选人的诚实与正直。一家组织最不想要的人就是那些夸张自己的能力或纯粹胡编乱造的虚假人才。
注(我留意到回复中关于这一点的讨论很火热):
这些问题都不是最终的或是具备代表性的问题,只是基于我自己专业领域提出来的。这些是问题的原型,使用时应该在此基础上进行编辑和改进。若针对你通常处理的数据类型,你需要在问题中加上更多细节描述。
quora地址:https://www.quora.com/What-are-20-questions-to-detect-fake-data-scientists
原作者|Jay Verkuilen 翻译|Lizyjieshu
校对|apple 寒小阳
KDnuggets编辑们针对这20个问题给出的回答
由于回答人不同,这二十个答案和上一部分的内容可能不会一一对应,但相信你还是可以得到想要成为数据科学家的知识。
Q1:什么是正则化(regularization)?它有什么作用?
【Matthew Mayo解答】
答:正则化项是保证模型平滑性的一个调节参数,它可以起到防止过拟合的作用。正则化的通常做法,是将已有的权重向量经过L1(Lasso)或者L2(ridge)变换,当然变换也可以是其他形式。最终的模型优化目标,是加入了正则化项后的损失函数。Xavier Amatriain给了一个很好的例子,对L1和L2正则化进行比较。
Lp球:p值减小,对应Lp空间也减小
Q2:你最崇拜的数据科学家和创业公司有哪些?
【Gregory Piatetsky解答】
答:这个问题没有标准答案,下面是我个人最崇拜的12位数据科学家,排名不分先后。
12位知名的数据科学家
在数据科学领域有很多出色的创业公司。为了避免利益冲突,我就不将它们都列出来了。
Q3:用多元回归(multiple regression)生成了一个量化输出的预测模型,如何验证其有效性?
【Matthew Mayo.解答】
答:验证多元回归模型的方法有很多,我们推荐如下的一些方法:
Q4:什么是查准率(precision)和查全率(recall)?与ROC曲线的关系?
【Gregory Piatetsky解答】
答:计算查准率和查全率实际上很简单。比如,在10,000个实例中有100个正例,如果你预测的结果有200个正例,那么显然召回这100个正例的概率自然会大一些。根据你的预测结果和实际的标签,将结果中正确或者错误的次数分别加起来,有如下四个统计量:
Predicted Neg | Predicted Pos | |
---|---|---|
Neg Cases | TN: 9,760 | FP: 140 |
Pos Cases | FN: 40 | TP: 60 |
现在可以回答如下三个问题:
1、 预测正确的百分比是?
回答:精度(accuracy)是(9,760 + 60) / 10,000 = 98.2%
2、 实际为正例的样本你预测对了多少?
回答:查全率(recall)是60 / 100 = 60%
3、 预测为正例的样本中实际为正例的百分比?
回答:查准率(precision)是60 / 200 = 30%
查准率和查全率
ROC曲线体现了灵敏性(召回)[原文:sensitivity, (RECALL)]和特异性(不是精确度)[原文:specificity(Not PRECISION)]之间的关系。通常用于衡量二分类器的好坏。然而,当处理正负样本分布得极不均匀数据集,PR曲线展示信息更具代表性。
Q5:如何证明对一个算法的改进的确是有用的?
【Anmol Rajpurohit解答】
答:在对快速迭代(又叫“快速成名”)[原文:rapid innovation (aka “quick fame”)]的追逐中,违反科学方法论的原则常导致误导性的创新,特别是一些很吸引人但没经过严格验证的观点。考虑如下场景,你要改进算法的效果,并且有好几个改进思路。心急的做法,是尽快列出这些思路并实施。当需要支撑数据时,只有很局限的结果可以共享,这些结果很容易受到已知或未知的选择偏差、或者误导性的全局最优(原因是缺乏适当变化的测试数据)影响。
数据科学家最忌讳的是将情感凌驾于逻辑推理之上。虽然证明算法改进有效的方法要看实际案例,但仍有一些通用的指导原则:
遵循以上原则的通常做法是A/B测试,将两个算法都放到相似的环境里运行相当长一段时间,并且将实际输入数据随机的划分到两个算法上。这种方法在网络分析(Web Analytics)中很常用。
Q6:什么是根本原因分析(root cause analysis)?
【Gregory Piatetsky解答】
答:维基百科上的解释是:Root cause analysis (RCA)是确定错误或问题根本原因的方法。当把某个因素从问题故障序列中去除,能够避免最终不良事件的再次发生,该因素就会被认定为根本原因;反之,诱因影响事件的结果,却不是根本原因。
根本原因分析最初是用来分析工业事故,现在已经在医疗保健、项目管理和软件测试等领域广泛应用。
本质上来说,通过反复问“为什么”,就可以找到一个问题的根本原因和原因之间的关系,直到找到问题的根本。这个方法通常叫做“5 Whys”,当然问题的个数并不一定是5个。
“为什么”分析法示例, 来自 The Art of Root Cause Analysis
Q7:你熟悉以下概念吗?
价格优化(price optimization)、
价格弹性(price elasticity)、
库存管理(inventory management)、
竞争情报(competitive intelligence)。
请举例说明。
【Gregory Piatetsky解答】
答:这些术语都来自经济学领域,在数据科学中并不常见。但是,了解这些术语很有意义。
价格优化,是用数学工具来确定消费者对不同渠道获得的产品或服务的不同价格的反应。
大数据和数据挖掘使个性化定价成为可能。现在,像亚马逊这样的公司可以基于用户的历史行为,将价格优化更进一步,实现不同用户不同的价格。当然,这样做是否公平仍存在很大的争论。
价格弹性,分为需求价格弹性和供给价格弹性:
需求价格弹性是对价格敏感度的一种度量,其计算公式如下:
需求价格弹性 = 需求量变化的百分比 / 价格变化的百分比
[原文:Price Elasticity of Demand = % Change in Quantity Demanded / % Change in Price]供给的价格弹性(Price elasticity of supply)指的是商品或服务的供给数量随商品价格变动而变动的情况。
库存管理,是指对公司在生产过程中使用的各种物品的订购、储存和使用的监督和控制,以及待售成品数量的监督和控制。
竞争情报,维基百科上的定义如下:
Competitive intelligence: 定义、收集、分析、和发布有关产品、客户、竞争对手以及制定战略决策所需的任何方面的情报。
像Google Trends, Alexa, Compete等工具都可以在网上获得总体趋势,进而分析竞争对手的情况。
Q8:什么是统计功效(statistical power)?
【Gregory Piatetsky解答】
答:维基百科这样定义二元假设检验(binary hypothesis test)的统计功效或者灵敏度(sensitivity):当备选假设(alternative hypthesis)H1为真时,正确地拒绝零假设(null hypothesis)H0的概率。另一种说法,统计功效是当效应(effect)存在时,能够检测到效应的可能性。功效越高,出现II类错误(Type II error)可能性越低(即检测结论没有效应,但事实上是有的。译者注:即假阴性)。
Q9:什么是重采样(resampling)?它有什么用?有什么局限?
【Gregory Piatetsky解答】
答:经典的统计参数检测把实测统计量当作理论抽样分布。而重采样是数据驱动的,而不是理论驱动的方法,它是在同一个样本中反复采样的技术。
以下各种方法都可以被称为重采样:
Q10:假阳性(false positive)多还是假阴性(false negative)多比较好?请说明原因。
【Devendra Desale解答】
答:这个问题取决于要解决的问题和领域。
比如,在医学检验方面,假阴性会给病人和医生提供错误的检查信息,但病人有病时却检测为没有病,这会导致病人得不到适合的治疗。所以,这个时候我们希望多一些假阳性。
但是,在垃圾邮件过滤时,假阳性意味着会将正常邮件当成了垃圾邮件,从而干扰邮件的传送。反垃圾邮件除了要能够够拦截或过滤大部分的垃圾邮件,但减少假阳性带来的误伤也非常重要。所以,这时我们希望多一些假阴性。
Q11:什么是选择偏差(selection bias)?它的重要性如何?怎样才能避免?
【Matthew Mayo解答】
答:一般来说,选择偏差指的是由于非完全随机的样本引发错误的一种情况。举例来说,如果有100个测试样本,分别由60/20/15/5分成四类组成,但实际的训练样本中每类实例数量又是接近的,那么模型有可能给出错误的假设—每类占比是决定性的预测因素。避免非随机采样是解决选择偏差的最好办法,但当它在实践中有困难时,使用类似重采样(resampling)、boosting和加权(weighting)这样的策略也有助于解决这个问题。
Q12:举例说明怎样设计实验来回答有关用户行为(user behavior)的问题
【Bhavya Geethika解答】
答:步骤1,制定要研究的问题:页面加载时间对用户满意度评级的影响是什么?
步骤2,识别变量:我们要识别出原因和结果,自变量是页面加载时间,因变量是用户满意度评级。
步骤3,构造假设:对一个网页来说,较低的页面加载时间会对用户满意度有更多影响。这里我们要分析的因素就是页面加载时间。
你的实验设计有一个缺陷
步骤4,确定实验的设计:考虑实验的复杂性,即一次改变一个因素或者在同一时间改变多个因素,这样我们用的是因子设计(factorial design, 又称2 ^ķ设计)。设计的选择要基于目标的类型(比较、筛选、响应面)[原文:Comparative, Screening, Response surface]和因素(factors)的个数。
我们还要确定采用何种实验形式,可以是参与者组内、参与者组间或者混合方式。例如:有两个版本的网页,一个在左边有购买按钮(点击购买)另一个网页这个按钮在右边。
参与者组内设计(Within-participants design) – 用户组的用户都可以看到两个版本的网页。
参与者组间设计(Between-participants design) – 一个用户组看到A版本,另一组的用户看到B版本的。
步骤5,制定实验任务和程序:
实验中涉及的步骤的详细描述,用来衡量用户行为的工具, 目标和成功度量这些都要定义。收集有关用户参与的定性数据,以便进行统计分析。
步骤6,确定操作和测量:操作(manipulation): 控制一个层级的因素,处理另一个。我们还要定义行为的衡量标准。
步骤7,分析结果:
识别用户行为数据,根据观测到的结果,支持或反对该假设。例如:不同页面加载时间下用户满意度评级的分布是怎样的。
Q13:“高/宽”数据(tall/wide data)的差别是什么?
【 Gregory Piatetsky解答】
答:在大多数数据挖掘、数据科学的应用中,记录(行)比特征(列)多很多-这种数据有时被称做“高”数据。
在像基因组学或者生物信息学的一些应用中,你可能只有很少的记录(病人),例如100,但又可能会对每个病人做20,000个观察。这时,通常用在“高”数据上的标准方法会导致过度拟合数据,所以需要引入特殊的方法。
针对高数据和宽数据的不同方法
问题不仅仅是变形(reshape)数据(这里有R包 useful R packages),而是通过减少特征数来寻找最相关的特征,以避免假阳性(false positives)。特征约减(feature reduction)的方法像Lasso在"Statistical Learning with Sparsity: The Lasso and Generalizations"一书中有介绍, 请在公众号后台发送信息“data2”获取。
Q14:怎样确定一篇文章里(报纸或其他媒体上)的统计数据是错的或者只是为了支持作者的观点,而不是关于某主题正确全面的真实信息?
答:Zack Lipton提出了一个简单的原则:如果这些统计数据发表在报纸上,那么它就是错的。这里有一个来自Anmol Rajpurohit的更严谨的解答。
每个媒体都有目标受众,对受众的选择在很大程度上决定了发布哪些文章、文章怎样措辞、重点突出文章的哪部分、怎样去讲这个事件等。
要判定发表在一篇文章上统计数据的有效性,第一步先要看发表它的机构和它的目标受众。你会发现即使是同样一个包含统计数据的新闻事件,福克斯新闻(Fox news)、华尔街新闻(wsj)和ACM/IEEE发布的会不那么一样。因此,数据科学家能聪明地知道从哪里获取资讯(以及要相信它几分)。
出现在“福克斯新闻”上一个十分具有误导性的柱状图
如何客观地呈现相同的数据
作者通常通过下面的方法试图隐藏他们研究的不足:巧妙的叙事技巧和忽略重要的细节直接跳到诱人的错误结论。因此,可以使用“拇指规则”(thumb’s rule)识别文章是否包含误导人的统计数据,检查文章是否包含了研究方法上的细节以及研究方法是否存在有感知限制的选择。注意查找像“样本容量(sample size)”,“误差范围(margin of error)”等词。尽管对“样本容量”,“误差范围”多少合适没有完美的答案,这些属性在阅读最终结论时要牢记于心。
另一个常见的错误报道案例是这样的,缺乏数据素养(data-education)的记者从已发表的研究报告的一两段中得到一个见解,并且为了得到他们的观点而忽略报告的其他部分。因此,以下一些方法能够避免你被这样的文章愚弄:首先,一篇可靠的文章不会含有任何无事实根据的观点。所有观点都必须能够对应研究结果的支持。否则,则必须明确将其区分为“意见”,而不是一个观点。其次,即便一篇文章引用了著名的研究论文,也并不代表它正确地运用了论文中的观点。这能通过全面阅读这些研究论文来判断其与手头文章的相关性。最后,虽然结论看起来是一篇文章最有趣的部分,但直接跳过研究方法(research methodology)的细节(例如明显错误,偏差等)[原文:spot errors, bias, etc.]往往是灾难性的。
理想情况下,我希望所有这些文章发表研究数据的时候也同时公布研究方法。这样,文章才能做到真正可信,因为每个人都可以分析这些数据,应用研究方法得出结论。
Q15:解释Edward Tufte's的“图表垃圾”(chart junk)的概念
【Gregory Piatetsky解答】
图表垃圾指的是图表或图片中所有可视元素对表达信息是不必要的,或者干扰观察者获取信息。图表垃圾这个名词是由Edward Tufte在他1983年的书《定量信息的视觉展示》里提出的。
“一个无意的内克尔错觉,像后面两个平面翻转到了前面来。有的角锥体遮住了其他的;一个变量(角锥体堆叠的深度)没有注明标识或比例”。
上图一个来自exceluser的更现代的例子,由于工人和吊车的干扰,图中的柱状图很难理解
这些修饰的存在迫使读者花更大力气而非必要地来发现数据的意义。
Q16:怎样筛查异常点(outliers)以及发现异常点后该如何处理?
【Bhavya Geethika解答】
答:一些筛查异常点的方法有Z分数(z-score)、改进的Z分数(modified z-score)、箱线图(box plots)、格拉布斯测试(Grubb’s test)、Tietjen-Moore测试指数平滑(Tietjen-Moore test exponential smoothing)、Kimber测试指数分布(Kimber test for exponential distribution)和移动窗口滤波算法(moving window filter algorithm)。下面是两种稳健(robust)方法的细节:
四分位距法(Inter Quartile Range)
异常值是给定数据集中一个小于第一四分位数(Q1)或者大于第三四分位数(Q3)1.5倍四分位距以上的数据点。
Tukey法(Tukey Methond)
它使用四分位距来过滤太大或太小的数。它实际上与上面的方法一样,除了它使用了“围栏(fences)”的概念。有两个一高一低的围栏:
在围栏之外的都是异常点。
当发现了异常值,不能在没有进行定性评估下就将它们移除,因为这样做是数据不再纯净。重要的是要理解分析问题的上下文或者说重要的是“为什么的问题-为什么异常值不同于其他数据点?”
这个原因很关键。如果是异常点导致了错误的发生,就可以把它扔掉。但如果异常点表示了一种新的趋势、模式或者揭示了数据中有价值的结论,那么它就应该被保留。
Q17:怎样运用极值理论(extreme value theory)、
蒙特卡洛模拟(Monte Carlo simulations)或其他数理统计方法来正确的估计一个小概率事件(rare event)的发生几率。
【Matthew Mayo解答】
答:极值理论关注的是小概率事件或极值,这点和经典统计方法不太一样,后者更关注平均。极值理论认为有3种分布可以建模从一些分布中随机观察到的极值点:Gumble, Frechet, 和 Weibull分布,也被叫做极值分布(Extreme Value Distributions, EVD)I型、II型和III型。
极值理论认为,如果从一个给定分布中产生N个数据集,然后创建一个只包含了这N个数据集的最大值的新数据集,那么这个新数据集只能被一种EVD分布精确描述:Gumble, Frechet, 或者 Weibull分布。广义极值分布(GEV)则是一个可以组合这3种极值理论分布还有极值分布模型的模型。
首先要理解用来建模数据的模型,然后才能使用模型来建模数据,最后才是评估。一旦找到最合适的模型,就能对模型进行分析,包括计算可能性。
Q18:什么是推荐引擎(recommendation engine)?
它是怎么工作的?
【Gregory Piatetsky解答】
我们现在都对推荐很熟悉,比如netflix的“你可能喜欢的其他电影”,亚马逊的“购买了X的用户还买了Y”。这些系统就叫做推荐引擎,或者更通俗地叫做推荐系统(recommender systems)。
两种典型的进行推荐的方法是:协同过滤(Collaborative filtering)和基于内容的推荐(Content-based filtering)。
协同过滤基于用户过去的行为(如买过的商品、看过的电影、评过的电影等)和用户以及其他用户的决定建模,然后模型被用于预测用户可能会感兴趣的物品(或者给物品的评分)。
基于内容的推荐方法基于一个物品特征来推荐更多具有类似特性的物品(items)。这些方法经常包含在混合推荐系统(Hybrid Recommender Systems)中。
这里有两种方法应用到两个流行音乐推荐系统中的比较:Last.fm和Pandora Radio(例子来自维基百科的推荐系统条目Recommender System)
Q19:说明假阳性(false positive)和假阴性(false negative)分别是什么?为什么区分它们的差异性很重要?
【 Gregory Piatetsky解答】
答:在二分类(或者医学检验)中,假阳性是指当一个算法或测试显示出现某种状况,但实际上并未出现。假阴性是指当一个算法或测试显示未出现某种状,但实际上却出现了。
在统计假设检验中,假阳性也叫做一类错误,假阴性也叫做二类错误。
很明显区分和区别对待假阳性和假阴性非常重要,因为这两类错误的代价可能会有巨大差异。
举例来讲,如果对一项重大疾病的检测是假阳性(检测结果是有病,但其实病人是健康的),那么就需额外的检测来做出正确的诊断。另一方面,如果一项检测是假阴性(检测结果是健康的,但其实病人有疾病),那么必要的治疗将会终止,可能会导致病人病情恶化而死亡。
Q20:你使用什么工具来做可视化(visualization)?你觉得Tableau怎么样?R呢?SAS呢?怎样在一张图或视频里有效地展示5维数据?
【Gregory Piatetsky解答】
答:数据可视化有很多很好的工具,如R, Python, Tableau 和 Excel等都是数据科学家经常使用的。
有很多方法可以在一个图表里展示多于2维的信息。第三维度可以用能旋转的三维散点来展示。还可以应用颜色、阴影、形状、尺寸。动画可以有效地展示时间维度(随着时间改变)。下面是个好例子。
5维Iris数据集的散点图 分别对应 尺寸: 花萼长度; 颜色: 花萼宽度; 形状: 类别标记; 横轴: 花瓣长度; 纵轴: 花瓣宽度
对多于5维的,一种方法是平行坐标法 (Parallel Coordinates),由Alfred Inselberg首创。
Iris数据集的平行坐标展示
当然,当有很多维度的时候,最好还是先减少维度或特征的数量。