非常关键!十条研究结果可再现的数据科学规则

2017 年 7 月 21 日 36大数据 Echo

近年来,越来越多的证据表明,科研成果的复用性出现了危机。对心理学和癌症生物学领域的论文的评论发现,只有40%和10%的结果可以被复制。近年来,越来越多的证据表明,科研成果的复用性出现了危机。对心理学和癌症生物学领域的论文的评论发现,只有40%和10%的结果可以被复制。

原文作者:ANDREW TAIT,本文由36大数据(dashuju36)翻译,译者Echo。


36大数据专稿, 本文由36大数据(dashuju36)翻译,不授权任何网站使用,除了36大数据网站和微信公众号,所有其他的转载均为侵权!


     

《自然》杂志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,允许创建可以由任何授权的同事访问的私有存储库。

许多眼睛改善了分析的质量,所以你能分享的越多,你的分析就越好。

 End 

阅读排行榜/精华推荐
1
入门学习

如果有人质疑大数据?不妨把这两个视频转给他 

视频:大数据到底是什么 都说干大数据挣钱 1分钟告诉你都在干什么

人人都需要知道 关于大数据最常见的10个问题


2
进阶修炼

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

如何高效地学好 R?

一个程序员怎样才算精通Python?


3
数据源爬取/收集

排名前50的开源Web爬虫用于数据挖掘

33款可用来抓数据的开源爬虫软件工具

在中国我们如何收集数据?全球数据收集大教程


4
干货教程

PPT:数据可视化,到底该用什么软件来展示数据?

干货|电信运营商数据价值跨行业运营的现状与思考

大数据分析的集中化之路 建设银行大数据应用实践PPT

【实战PPT】看工商银行如何利用大数据洞察客户心声?              

六步,让你用Excel做出强大漂亮的数据地图

 数据商业的崛起 解密中国大数据第一股——国双

双11剁手幕后的阿里“黑科技” OceanBase/金融云架构/ODPS/dataV

金融行业大数据用户画像实践

讲述大数据在金融、电信、工业、商业、电子商务、网络游戏、移动互联网等多个领域的应用,以中立、客观、专业、可信赖的态度,多层次、多维度地影响着最广泛的大数据人群

36大数据

长按识别二维码,关注36大数据

搜索「36大数据」或输入36dsj.com查看更多内容。

投稿/商务/合作:dashuju36@qq.com

点击下方 “阅读原文”查看更多

↓↓↓

登录查看更多
0

相关内容

数据科学(英語:data science)是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。 它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。 数据科学通过运用各种相关的数据来帮助非专业人士理解问题。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
90+阅读 · 2020年6月28日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
专知会员服务
123+阅读 · 2020年3月26日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
数据科学、机器学习IDE概览
论智
9+阅读 · 2018年11月12日
【因果关系】由模仿“人脑”转向“因果推理”
产业智能官
10+阅读 · 2018年7月13日
已删除
将门创投
3+阅读 · 2018年4月10日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
用于数学的 10 个优秀编程语言
算法与数据结构
13+阅读 · 2018年1月5日
牛逼的数据科学家应该具有的8个习惯!
物联网智库
5+阅读 · 2017年12月3日
机器学习实践指南
Linux中国
8+阅读 · 2017年9月28日
Large-Scale Study of Curiosity-Driven Learning
Arxiv
8+阅读 · 2018年8月13日
Arxiv
5+阅读 · 2018年5月22日
Arxiv
6+阅读 · 2018年3月28日
Arxiv
3+阅读 · 2018年3月22日
Arxiv
7+阅读 · 2018年1月30日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
90+阅读 · 2020年6月28日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
专知会员服务
123+阅读 · 2020年3月26日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
相关资讯
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
数据科学、机器学习IDE概览
论智
9+阅读 · 2018年11月12日
【因果关系】由模仿“人脑”转向“因果推理”
产业智能官
10+阅读 · 2018年7月13日
已删除
将门创投
3+阅读 · 2018年4月10日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
用于数学的 10 个优秀编程语言
算法与数据结构
13+阅读 · 2018年1月5日
牛逼的数据科学家应该具有的8个习惯!
物联网智库
5+阅读 · 2017年12月3日
机器学习实践指南
Linux中国
8+阅读 · 2017年9月28日
Top
微信扫码咨询专知VIP会员