我愛你,你是自由的。
《检测伪数据科学家的20个问题》在1月获得了最多的阅读量。但作者并没有提供这些问题的答案,所以KDnuggets的编辑们聚在一起解答了这些问题。我也额外增加了一个通常容易被忽略的问题。下面是这些问题的回答。
问题1: 什么是正则化项以及它为什么有用。【Matthew Mayo解答】
正则化项是用以保证模型平滑性的一个调节参数,它可以起到防止过拟合的作用。(参考KDnuggets 关于过拟合的内容 Overfitting)。通常做法是将已有的权向量经过固定的变换,这种变换通常是L1(Lasso)或者L2(ridge),也可以是其他的形式。最终模型优化目标是最小化考虑了正则化后的损失函数。 Xavier Amatriain有一个很好的例子对L1和L2 正则化做了比较。
图1:Lp 球:当p的值减小,对应的L-p空间的大小也减小。
问题2:你最崇拜的数据科学家有哪些?创业公司呢?【Gregory Piatetsky解答】
这个问题没有标准答案,下面是我个人最崇拜的12位数据科学家,排名不分先后。
Geoff Hinton, Yann LeCun, 和 Yoshua Bengio 在神经网络方面坚持不懈的努力开启了当前深度学习的革命。
Demis Hassabis 在DeepMind的突出贡献,使机器在玩Atari游戏以及最近进行的围棋比赛中达到了人类或超人类的水平。
来自DataKind的Jake Porway和U. Chicago/DSSG的 Rayid Ghani,使数据科学可以在社会福利方面发挥作用。
DJ Patil 美国政府的第一位首席数据科学家,应用数据科学使美国政府更好的工作。
Kirk D. Borne以社交媒体上的影响力和领导力而被大家所知。
Claudia Perlich在广告生态圈方面有很出色工作,他还是KDD 2014的主席。
Hilary Mason 在Bitly 贡献伟大,激励着其他人成为大数据的摇滚明星。
Usama Fayyad 在KDD和Data Science展现出的领导力和规划才能,帮助和激励着我和其他千千万的数据科学工作者竭尽全力工作。
Hadley Wickham 在基于R的数据科学和数据可视化方面的卓越工作,包括 dplyr, ggplot2, 和 Rstudio。
在数据科学领域有很多出色的创业公司。为了避免利益冲突,我就不将它们都列出来了。
一些最近的创业公司的报道可以参见这个链接 startups.
问题3:如何验证使用多元回归生成的(定量结果变量)预测模型。【Matthew Mayo解答】
推荐的模型验证的方法:
问题4:什么是查准率和查全率?与ROC曲线的关系?【Gregory Piatetsky解答】
来自KDnuggets FAQ之查准率和查全率的答案:
计算差准率和查全率实际上很简单。想象在10,000个实例中有100个正例。当你预测哪些是正类的时候如果选取了200个,那么召回这100个正类的概率自然会大一些。记下你预测的这些id,参照实际的标记,将结果中正确或者错误的次数分别加起来,有四种方法表示正确或错误。
Predicted Negative | Predicted Positive | |
---|---|---|
Negative Cases | TN: 9,760 | FP: 140 |
Positive Cases | FN: 40 | TP: 60 |
现在数一下10,000实例中分别在每一栏有多少,可以看到:
现在,你的老板问你三个问题:
回答:精度(accuracy)是(9,760 + 60)比上10,000 = 98.2%
回答:查全率是60比上100 = 60%
回答:查准率是60比上200 = 30%
在维基百科关于查准率和查全率的解释 Precision and recall
图4查准率和查全率
ROC曲线体现了灵敏性(召回)和特异性(不是精确度)之间的关系。通常用于衡量二分类器的好坏。然而,当处理正负样本分布得极不均匀数据集,P-R曲线展示信息更具代表性。Quora上该问题的解答:ROC曲线和P-R曲线的差别是什么?
问题5:如何证明对一个算法的改进确实产生了作用?【Anmol Rajpurohit解答】
在对快速迭代(又叫“快速成名”)的追逐中,违反科学方法论的原则常导致误导性的创新。例如:没有经过严格验证的很吸引人的观点。一个这样的场景如下,你接到了旨在更好效果输出的算法改进任务,你可能会有好几个潜在的改进思路。心急的做法是尽快列出这些思路并实施。当需要支撑数据时,只有很局限的结果可以共享,这些结果很容易受到选择偏差(已知或未知)影响或者误导性的全局极小(缺乏适当变化的测试数据)影响。
数据科学家不应该让他们的情感凌驾于逻辑推理之上。尽管证明算法改进确实有效的真正办法要依赖于手边实际的案例,但仍有一些通用的指导原则可以遵循:
遵循以上原则的通常做法是A/B测试,将两个算法都放到相似的环境里运行相当长一段时间,并且将实际输入数据随机的划分到两个算法上。这种方法在网络分析中很常用。
问题6:什么是根本原因分析?【Gregory Piatetsky解答】
维基百科上的解释:
(Root cause analysis)RCA是确定错误或问题的根本原因的方法。当把某个因素从问题故障序列中去除,能够防止最终不良事件的再次发生,该因素会被认定为根本原因;反之,诱因影响事件的结果,却不是根本原因。
根本原因分析法最初是用来分析工业事故,现在已经在其他领域广泛应用,例如:医疗保健,项目管理和软件测试。
这里有一些来自明尼苏达州的根本原因分析工具包Root Cause Analysis Toolkit 。
本质上来说,通过反复问“为什么”,就可以找到一个问题的根本原因和原因之间的关系,直到找到问题的根本。这个方法通常叫做“5 Whys”,实际上问题的个数并非一定是5个。
图5“为什么”分析法示例,来自 The Art of Root Cause Analysis .
问题7:你熟悉以下概念吗?价格优化、价格弹性、库存管理、竞争情报。请举例说明。【Gregory Piatetsky解答】
这些术语都是经济方面的,在数据科学中并不常被问道,但了解这些术语很有用。
价格优化是用数学工具来确定,消费者对通过不同渠道获得的产品或服务的不同价格的反应。
大数据和数据挖掘使价格优化能够进行个性化设置。现在像亚马逊这样的公司可以将价格优化更进一步,主要是基于用户的历史行为,实现不同用户不同的价格。尽管这样做是否公平仍存在很大的争论。
价格弹性在典型用法里特指:
需求的价格弹性 = 需求量变化的百分之 / 价格变化的百分比
类似的,供给的价格弹性显示的是商品或服务的供给数量随商品价格变动而变动的情况。
库存管理是对公司在生产过程中使用的各种物品的订购、储存和使用的监督和控制,以及待售成品数量的监督和控制。
维基百科上的定义
Competitive intelligence:定义、收集、分析、和发布有关产品、客户、竞争对手以及制定战略决策所需的任何方面的情报。
像Google Trends, Alexa, Compete等工具都可以在网上获得总体趋势,进而分析竞争对手的情况。
下面是一些有用的资料:
问题8:什么是统计功效?【Gregory Piatetsky解答】
维基百科定义二元假设检验的统计功效或者灵敏度( Statistical power or sensitivity )为当备择假设H1为真时,正确地拒绝零假设(H0)的概率。
另一种说法,统计功效是当效应存在时,能够检测到效应的可能性。功效越高,出现ii类错误可能性越低(即检测结论没有效应,但事实上是有的,假阴性。)。
下面是一些计算统计功效的工具calculate statistical power. 。
问题9:什么是重采样及它们为什么有用。它们的局限是什么。【Gregory Piatetsky解答】
经典的统计参数检测把实测统计量当作理论抽样分布。而重采样是数据驱动的,而不是理论驱动的方法,后者是在同一个样本中反复采样的技术。
以下方法的任一种都可以被称为重采样
更多参见维基百科上的相关介绍bootstrapping), jackknifing).
也可参考How to Check Hypotheses with Bootstrap and Apache Spark
这里有一个很好的概览 Resampling Statistics.
问题10:假阳性多好还是假阴性多好?说明原因。【Devendra Desale解答】
这个问题取决于要解决的问题和领域。
在医学检验方面,当发生假阴性时,会给病人和医生提供错误的检查信息,但病人有病时却检测为没有病。这会导致病人和疾病得不到适合或足够的治疗。所以,这个时候我们希望多一些假阳性。
在垃圾邮件过滤时,假阳性意味着会错误地将正常邮件当成了垃圾邮件,从而干扰邮件的传送。尽管大多数的反垃圾邮件策略能够拦截或过滤大部分的垃圾邮件,但减少假阳性带来的误伤也非常重要。所以,这时我们希望多一些假阴性。
问题11:什么是选择偏差?为什么它很重要以及怎样避免它。【Matthew Mayo解答】
一般来说,选择偏差指的是由于非随机性产生样本而引发错误的一种情况。举例来说,如果一个给定的数量为100的测试样本,分别由60/20/15/5分成四类组成,但实际的训练样本中每类实例数量又是接近的,那么模型有可能给出错误的假设—每类占比是决定性的预测因素。避免非随机抽样是解决选择偏差的最好办法,但当它在实践中有困难时,使用类似重采样、boosting和加权这样的策略也有助于解决这个问题。
《检测伪数据科学家的20个问题》的第二部分包括防止过拟合(overfitting),实验设计(experimental design),长/宽数据(tall and wide data),理解媒体给出统计数据的有效性等等。由KDnuggets 的Gregory Piatetsky编辑。这是第二部分问题及答案,先从一个附加题开始。
附加题:什么是过拟合?怎么防止过拟合?【Gregory Piatetsky解答】
过拟合是发现偶然欺骗性的、不能被后续研究实验复现的结果。
我们在新闻报道上经常看到,有些工作推翻了以前的研究结论,像鸡蛋不再对健康不利,或者饱和脂肪(saturated fat)和心脏疾病无关。我们认为这个问题是由于许多研究人员(尤其是社会科学或医学领域的)经常犯数据挖掘(data mining)的大忌-过拟合导致的。研究者在没有合适的统计控制下进行了太多的假设检验,直到他们偶然发现了一些有趣的东西并报告出来。不足为奇的是,这次偶然的效应下次被发现时可能会小得多或根本观测不到。
这些研究实验的缺陷被John P. A. Ioannidis认识到,并写在了他具有里程碑意义的论文“为什么大多数发表的研究结果都是错的”( PLoS Medicine, 2005)中。Ioannidis发现经常要不就是实验结果很夸张,要不就是研究发现没法复现。在他的论文中,他给出的统计证据确实证实大多数声称的研究发现是错的。
Ioannidis发现要使一项研究发现是可靠的,它必须具备:
遗憾的是,这些规则往往没有被遵守,这就产生了很多无法复现的结果。例如:指标S&P500被发现与孟加拉国的黄油产量密切相关(从1981年至1993年)。
使用诸如 Google correlate 或 Spurious correlations 这样的工具,我们自己也可以发现更多有趣(而且完全虚假的)的结果。
有几个方法可以用来防止“过拟合”:
好的数据科学是站在科学认知世界的前沿,避免过拟合数据、让公众和媒体认识到坏的数据分析的危害性是数据科学家们的责任。
延伸阅读
问题12:举例说明怎样设计实验来回答有关用户行为(user behavior)的问题【Bhavya Geethika解答】
步骤1制定要研究的问题:页面加载时间对用户满意度评级的影响是什么?
步骤2识别变量:我们要识别出原因和结果,自变量是页面加载时间,因变量是用户满意度评级。
步骤3构造假设:对一个网页来说,较低的页面加载时间会对用户满意度有更多影响。这里我们要分析的因素就是页面加载时间。
图12:你的实验设计有一个缺陷(图来自这里)
步骤4确定实验的设计:考虑实验的复杂性,即一次改变一个因素或者在同一时间改变多个因素,这样我们用的是因子设计(factorial design, 又称2 ^ķ设计)。设计的选择要基于目标的类型(比较、筛选、响应面)[原文:Comparative, Screening, Response surface]和因素(factors)的个数。
我们还要确定采用何种实验形式,可以是参与者组内、参与者组间或者混合方式。例如:有两个版本的网页,一个在左边有购买按钮(点击购买)另一个网页这个按钮在右边。
参与者组内设计(Within-participants design) – 用户组的用户都可以看到两个版本的网页。
参与者组间设计(Between-participants design) – 一个用户组看到A版本,另一组的用户看到B版本的。
步骤5制定实验任务和程序:实验中涉及的步骤的详细描述,用来衡量用户行为的工具, 目标和成功度量这些都要定义。收集有关用户参与的定性数据,以便进行统计分析。
步骤6确定操作和测量:操作(manipulation): 控制一个层级的因素,处理另一个。我们还要定义行为的衡量标准。
步骤7分析结果:识别用户行为数据,根据观测到的结果,支持或反对该假设。例如:不同页面加载时间下用户满意度评级的分布是怎样的。
问题13:“长”(高)、“宽”数据(tall/wide data)的差别是什么?【 Gregory Piatetsky解答】
在大多数数据挖掘、数据科学的应用中,记录(行)比特征(列)多很多-这种数据有时被称做“高”(“长”)数据。
在像基因组学或者生物信息学的一些应用中,你可能只有很少的记录(病人),例如100,但又可能会对每个病人做20,000个观察。这时,通常用在“高”数据上的标准方法会导致过度拟合数据,所以需要引入特殊的方法。
图13. 针对高数据和宽数据的不同方法,来自 Sparse Screening for Exact Data Reduction, by Jieping Ye.
问题不仅仅是变形(reshape)数据(这里有R包 useful R packages),而是通过减少特征数来寻找最相关的特征,以避免假阳性(false positives)。特征约减(feature reduction)的方法像Lasso在这个链接里有介绍 Statistical Learning with Sparsity: The Lasso and Generalizations, 由 Hastie, Tibshirani, 和 Wainwright编写. (可以下载PDF格式的免费书)
问题14:用什么方法来确定发表在一篇文章里(报纸亦或其他媒体上)的统计数据是错的或者只是为了支撑作者的观点,而不是关于某主题正确的、全面的真实信息?
Zack Lipton提出了一个简单的原则:如果这些统计数据发表在报纸上,那么它就是错的。这里有一个来自Anmol Rajpurohit的更严谨的解答。
每个媒体都有目标受众,对受众的选择在很大程度上决定了发布哪些文章、文章怎样措辞、重点突出文章的哪部分、怎样去讲这个事件等。
要判定发表在一篇文章上统计数据的有效性,第一步先要看发表它的机构和它的目标受众。你会发现即使是同样一个包含统计数据的新闻事件,福克斯新闻(Fox news)、华尔街新闻(wsj)和ACM/IEEE发布的会不那么一样。因此,数据科学家能聪明地知道从哪里获取资讯(以及要相信它几分!)
图14a:出现在“福克斯新闻”上一个十分具有误导性的柱状图
图14b:如何客观地呈现相同的数据 。来自5个防止被统计数据欺骗的方法 5 Ways to Avoid Being Fooled By Statistics
作者通常通过下面的方法试图隐藏他们研究的不足:巧妙的叙事技巧和忽略重要的细节直接跳到诱人的错误结论。因此,可以使用“拇指规则”(thumb’s rule)识别文章是否包含误导人的统计数据,检查文章是否包含了研究方法上的细节以及研究方法是否存在有感知限制的选择。注意查找像“样本容量(sample size)”,“误差范围(margin of error)”等词。尽管对“样本容量”,“误差范围”多少合适没有完美的答案,这些属性在阅读最终结论时要牢记于心。
另一个常见的错误报道案例是这样的,缺乏数据素养(data-education)的记者从已发表的研究报告的一两段中得到一个见解,并且为了得到他们的观点而忽略报告的其他部分。因此,以下一些方法能够避免你被这样的文章愚弄:首先,一篇可靠的文章不会含有任何无事实根据的观点。所有观点都必须能够对应研究结果的支持。否则,则必须明确将其区分为“意见”,而不是一个观点。其次,即便一篇文章引用了著名的研究论文,也并不代表它正确地运用了论文中的观点。这能通过全面阅读这些研究论文来判断其与手头文章的相关性。最后,虽然结论看起来是一篇文章最有趣的部分,但直接跳过研究方法(research methodology)的细节(例如明显错误,偏差等)[原文:spot errors, bias, etc.]往往是灾难性的。
理想情况下,我希望所有这些文章发表研究数据的时候也同时公布研究方法。这样,文章才能做到真正可信,因为每个人都可以分析这些数据,应用研究方法得出结论。
问题15:解释Edward Tufte’s的“图表垃圾”(chart junk)的概念【Gregory Piatetsky解答】
图表垃圾指的是图表或图片中所有可视元素对表达信息是不必要的,或者干扰观察者获取信息。图表垃圾这个名词是由Edward Tufte在他1983年的书《定量信息的视觉展示》里提出的。
图15 Tufte写到:“一个无意的内克尔错觉,像后面两个平面翻转到了前面来。有的角锥体遮住了其他的;一个变量(角锥体堆叠的深度)没有注明标识或比例”。
上图一个来自exceluser的更现代的例子,由于工人和吊车的干扰,途中的柱状图很难理解。这些修饰的存在迫使读者花更大力气而非必要地来发现数据的意义。
问题16:怎样筛查异常点(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)”的概念。有两个一高一低的围栏:
在围栏之外的都是异常点。
当发现了异常值,不能在没有进行定性评估下就将它们移除,因为这样做是数据不再纯净。重要的是要理解分析问题的上下文或者说重要的是“为什么的问题-为什么异常值不同于其他数据点?”
这个原因很关键。如果是异常点导致了错误的发生,就可以把它扔掉。但如果异常点表示了一种新的趋势、模式或者揭示了数据中有价值的结论,那么它就应该被保留。
问题17:怎样运用极值理论(extreme value theory)、蒙特卡洛模(Monte Carlo simulations)其他拟或者数理统计(或其他什么方法)来正确的估计一个小概率事件(rare event)的发生几率。【Matthew Mayo.解答】
极值理论关注的是小概率事件或极值,这点和经典统计方法不太一样,后者更关注平均。极值理论认为有3种分布可以建模从一些分布中随机观察到的极值点:Gumble, Frechet, 和 Weibull分布,也被叫做极值分布(Extreme Value Distributions, EVD)ⅰ型、ⅱ型和ⅲ型。
极值理论认为,如果从一个给定分布中产生N个数据集,然后创建一个只包含了这N个数据集的最大值的新数据集,那么这个新数据集只能被一种EVD分布精确描述:Gumble, Frechet, 或者 Weibull分布。广义极值分布(GEV)则是一个可以组合这3种极值理论分布还有极值分布模型的模型。
首先要理解用来建模数据的模型,然后才能使用模型来建模数据,最后才是评估。一旦找到最合适的模型,就能对模型进行分析,包括计算可能性。
问题18:什么是推荐引擎(recommendation engine)?它是怎么工作的?【Gregory Piatetsky解答】
我们现在都对推荐很熟悉,比如netflix的“你可能喜欢的其他电影”,亚马逊的“购买了X的用户还买了Y”。这些系统就叫做推荐引擎,或者更通俗地叫做推荐系统(recommender systems)。
两种典型的进行推荐的方法是:协同过滤(Collaborative filtering)和基于内容的推荐(Content-based filtering)。
协同过滤基于用户过去的行为(如买过的商品、看过的电影、评过的电影等)和用户以及其他用户的决定建模,然后模型被用于预测用户可能会感兴趣的物品(或者给物品的评分)。
基于内容的推荐方法基于一个物品特征来推荐更多具有类似特性的物品(items)。这些方法经常包含在混合推荐系统(Hybrid Recommender Systems)中。
这里有两种方法应用到两个流行音乐推荐系统中的比较:Last.fm和Pandora Radio(例子来自维基百科的推荐系统条目Recommender System)
Dataconomy对推荐引擎有一个很好的介绍 Introduction to Recommendation Engines .Toptal有一个关于协同过滤的概览 building a Collaborative Filtering Recommendation Engine . 更新的推荐技术进展可参见 ACM RecSys conference.
问题19:说明假阳性(false positive)和假阴性(false negative)分别是什么?为什么区分它们的差异性很重要?【 Gregory Piatetsky解答】
在二分类(或者医学检验)中,假阳性是指当一个算法(或测试)显示出现某种状况,但实际上并未出现。假阴性是指当一个算法(或测试)显示未出现某种状,但实际上却出现了。
在统计假设检验中,假阳性也叫做一类错误,假阴性也叫做二类错误。
很明显区分和区别对待假阳性和假阴性非常重要,因为这两类错误的代价可能会有巨大差异。
举例来讲,如果对一项重大疾病的检测是假阳性(检测结果是有病,但其实病人是健康的),那么就需额外的检测来做出正确的诊断。另一方面,如果一项检测是假阴性(检测结果是健康的,但其实病人有疾病),那么必要的治疗将会终止,可能会导致病人病情恶化而死亡。
问题20:你使用什么工具来做可视化(visualization)?你觉得Tableau怎么样?R呢?SAS呢(对图形来说)。怎样在一张图里(或者视频里)有效地展示5维数据?【Gregory Piatetsky解答】
数据可视化有很多很好的工具,如R, Python, Tableau 和 Excel等都是数据科学家经常使用的。下面是KDnuggets上一些有用的资源链接:
有很多方法可以在一个图表里展示多于2维的信息。第三维度可以用能旋转的三维散点来展示。还可以应用颜色、阴影、形状、尺寸。动画可以有效地展示时间维度(随着时间改变)。下面是个好例子。
图20a:5维Iris数据集的散点图 分别对应 尺寸: 花萼长度; 颜色: 花萼宽度; 形状: 类别标记; 横轴: 花瓣长度; 纵轴: 花瓣宽度。
对多于5维的,一种方法是平行坐标法 (Parallel Coordinates),由Alfred Inselberg首创。
图20b: Iris数据集的平行坐标展示
还可以参考
当然,当有很多维度的时候,最好还是先减少维度或特征的数量。