实现数据科学研究结果可复制的十条规则

百家 作者:数据分析 2017-08-01 12:40:45

实现数据科学研究结果可复制的十条规则

原文:10 Rules For Creating Reproducible Results In Data Science

来源: http://dataconomy.com/2017/07/10-rules-results-data-science/


品觉导读:

  1. 手动数据操作是无法显示踪迹的操作。

  2. 你必须记录你使用的所有软件的版本,包括操作系统的版本。软件的任何细微变化都可能影响到结果。

  3. 众人的审视可以改善分析质量,所以分享得越多,你的分析质量就可能越高。


原文翻译:


近年来,有越来越多的迹象表明,科研结果的可复现性出现了危机。对心理学和癌症生物学论文的检查发现,分别只有40%和10%的结果是可复现的。


《自然》杂志在2016年对科研人员的调查结果显示:

  •  52%的科研人员认为存在严重的可复现性危机

  •  70%的科学家试图复现另一位科学家的试验,但以失败告终


2013年,一群科研人员在一篇论文中,讲述了可复现性计算研究的十条规则。如果遵循这些规则,应该会产生更具可复现性的结果。


所有的数据科学都是研究。仅仅因为研究结果没有发表在学术论文中,这不会改变我们试图从庞杂数据中获取洞见的事实。因此,对于任何从事内部分析的数据科学家来说,那篇论文中的十条规则都应该引起重视。


规则1:对于每个结果,都要记录它的产生过程


知道研究结果的产生过程很重要。知道你如何从原始数据中得出该结论,这可以让你:

  •  为结果辩护

  •  发现错误时修改结果

  •  在数据更新时复现结果

  •  提交结果以供评审


如果你使用一种编程语言(R、Python、Julia、F#等等)来编写你的分析脚本,那么过程应该是清晰明了的,前提是避免了任何的手动步骤。如果使用“鼠标点击”工具(比如Excel),这会使你更难记录步骤,因为你必须描述一系列手动操作,而手动操作很难记录和复现。

 

规则2:避免手动数据操作步骤


你可能很想在编辑器中打开数据文件,手动修改格式错误或者删除异常值。而且,现代的操作系统使你可以轻松地剪切和粘贴应用。然而,你应该抵挡住这种走捷径的诱惑。手动数据操作是无法显示踪迹的操作。


规则3:存档你使用的所有外部程序的准确版本


理想情况下,你应该创建一个包含所有脚本运行软件的虚拟机。这使你可以生成分析生态系统的快照,轻松实现结果的可复现性。

 

不过,这并不总是可行。例如,如果你使用云服务,或者你分析的数据集非常庞大,那么你很难圈定整个环境进行存档。另外,商业工具的使用可能使你难以和其他人分享这样的一个环境。

至少,你必须记录你使用的所有软件的版本,包括操作系统的版本。软件的任何细微变化都可能影响到结果。


规则4:记录所有自定义脚本的版本


应该使用版本控制系统(比如Git)来记录脚本的版本。你应该标记(快照)多个脚本,并在你产生的任何结果中索引那个标记。这样一来,如果你后来决定修改脚本(你肯定会这么做),你就可以及时找到产生特定结果的确切脚本。


规则5:尽量用标准格式记录所有的中间结果

 

如果你遵循了规则1,应该就有可能从原始数据中重现任何结果。不过,虽然这在理论上是可能的,但在实践中存在种种限制。问题可能包括:

  •  缺乏从头开始运行结果的资源(比如使用了大量的集群计算资源)

  •  使用了商业工具,但没有某些工具的授权

  •  使用某些工具的技术能力不足

 

在这些情况下,从原始数据的派生数据集着手不失为明智之举。这些中间数据集(比如CSV格式数据)提供了更多的分析选择,并且在出错的时候,更容易识别有问题的结果,不必重头来过。


规则6:对于带有随机性的分析,要记录潜在的随机种子


数据科学家常常没有为他们的分析设置种子值,因此不可能准确复现机器学习研究。很多机器学习算法都包含随机成分,虽然强劲的结果可能在统计上是可复现的,但没什么能比得上与其他人产生的精确数据相一致。


如果你使用脚本和源代码控制,你可以在脚本中设置种子值。


规则7:始终保存原始数据

 

如果你使用脚本/编程语言,图表常常将自动生成。但如果你使用Excel这样的工具来绘制图表,请确保你保存了原始数据。这使图表可以复现,也能对图表背后的数据进行更细致的检查。


规则8:生成层次分析输出结果,使越来越细致的层次可以被检查


数据科学家的工作是以某种形式总结数据,从数据中获取洞见。

不过,总结也容易导致数据误用,所以应该让相关方可以把总结分解成各个数据点。对于每个总结性结果,要与使用的数据联系起来,以便对总结进行推算。


规则9:把文本陈述和潜在结果联系起来


归根结底,数据分析的结果是以文字的形式呈现,而文字是不精确的。有时,结论和分析之间的联系很难确定。由于论文常常是科研中最具影响力的部分,因此把论文和结果联系起来至关重要,由于规则1的缘故,与原始数据联系起来也很重要。


这可以通过在文本中添加脚注的方式来实现。脚注引用的文件或URL应该包含引出论文中观察发现的特定数据。如果你无法建立这种联系,说明你可能没有充分记录所有步骤。

 

规则10:公开脚本、过程和结果


在商业环境中,可能不适合公开所有的数据。不过,向组织内部的其他人公开数据是可以的。基于云的源代码控制系统,比如Bitbucket和GitHub,允许创建私密存储,任何获得授权的同事都能访问。


众人的审视可以改善分析质量,所以分享得越多,你的分析质量就可能越高。

本次转自:品觉 微信公众号(pinjueche.com)

车品觉简介

畅销书《决战大数据》作者;国信优易数据研究院院长;红杉资本中国基金专家合伙人;浙江大学管理学院客席教授;全国信标委员;数据标准工作组副组长;美丽心灵基金会桑珠利民基金副主席。

原阿里巴巴集团副总裁,首任阿里数据委员会会长现担任中国信息协会大数据分会副会长、中国计算机学会大数据专家委员会副主任、粤港信息化专家委员、中国计算数学学会第九届理事、清华大学教育指导委员(大数据项目)、浙江大学管理学院客席教授等职。

END

关联阅读

原创系列文章:

1:从0开始搭建自己的数据运营指标体系(概括篇)

2 :从0开始搭建自己的数据运营指标体系(定位篇)

3 :从0开始搭建自己的数据运营体系(业务理解篇)

4 :数据指标的构建流程与逻辑

5 :系列 :从数据指标到数据运营指标体系

6:   实战 :为自己的公号搭建一个数据运营指标体系

数据运营 关联文章阅读:  

运营入门,从0到1搭建数据分析知识体系    

推荐 :数据分析师与运营协作的9个好习惯

干货 :手把手教你搭建数据化用户运营体系

推荐 :最用心的运营数据指标解读

干货 : 如何构建数据运营指标体系

从零开始,构建数据化运营体系

干货 :解读产品、运营和数据三个基友关系

干货 :从0到1搭建数据运营体系

数据分析、数据产品 关联文章阅读:

干货 :数据分析团队的搭建和思考

数据分析师必需具备的10种分析思维。

如何构建大数据层级体系,看这一文章就够了

干货 : 聚焦于用户行为分析的数据产品

如何构建大数据层级体系,看这一文章就够了

80%的运营注定了打杂?因为你没有搭建出一套有效的用户运营体系

从底层到应用,那些数据人的必备技能

读懂用户运营体系:用户分层和分群

做运营必须掌握的数据分析思维,你还敢说不会做数据分析

商务合作|约稿 请加qq:365242293  


更多相关知识请回复:“ 月光宝盒 ”;

数据分析(ID : ecshujufenxi )互联网科技与数据圈自己的微信,也是WeMedia自媒体联盟成员之一,WeMedia联盟覆盖5000万人群。

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接