数据科学项目管理中的“黄金标准”

简介:

如何建立一个数据科学项目管理?建立的标准又是什么?

我想大多数人至少承认这一点:“你的研究需要让其他人能够轻松地理解你在项目中做了什么,并能复制这些结果”。

此外,你还得对文件的命名方式多加注意,具体做法如何,我们一起来看看吧。

研究结果的可复制性和分享性

d73befa46f001e0b7d1d9ad8a0b263bb1ea8e219

首先,你所做的项目必须具有非常强的可复制性以及可分享性,因为只有这样才能让你的同行检验项目的成果。

例如,杜克大学的研究人员曾经发表了一项关于将个人基因信息用于患者化疗的研究。来自MD Anderson癌症研究中心的两位研究人员Baggary和Coombs想要对研究进行复现。但是复现之前必须获取数据和代码是必须的。

经过数月的时间,终于,这两位认真的研究人员拿到了想要的数据和代码。虽然,拿到的时候这些资料还是未经整理、杂乱无章的。

又经过很长时间的实验验证,这两位研究人员发现已发表的研究中的代码出现了一个错误,这个错误严重到研究的成果会将患者置于危险境地。

所以,几个月份来,两位研究者一直在对一项错误的研究进行复现,更重要的是,他们大多数的时间花费到了“无意义”的数据收集与整理上。

这就是弱分享性以及弱复制性带来的危害,验证实验结果可能花费不了多少成本。但是由于研究作者对数据的保护,使得你需要用更长的时间收集相关数据。

那么,为什么研究者大多不愿意分享研究数据呢?

当你联系一个研究员想要获得他的研究的源代码和初始数据时,你需要解释你是谁,你为谁工作,为什么需要这些数据,以及你要如何处置这些数据。

另外,你还经常收到如下回复:

我不得不说如果没有解释的话,这就是一个不太正常的要求。请让你的导师发一封详细的,我再强调一遍,详细的邮件给我来解释一下。

这些数据文件是我们的资产,并且不是免费使用的,所以请告诉我们你想要用这些文件来做什么,然后我们看看可以如何帮到你。

我们通常不会将我们的内部数据分享给非合作单位。

这些代码是我和同事多年努力的结晶,这些数据也是我与合作者们千辛万苦花了很长时间收集到的,所以也需要得到他们的允可。

通常我们不会提供这类数据给不认识的人。可能你想要查验数据分析,这可能对于我们也有用,但是在你发表你的研究时请恰当地提到我们。.

感谢你对我们的文章感兴趣。在计算中我用的是我们自己的代码,目前还没有公共版本可供下载。鉴于目前的代码不是很易用,而且还在持续改进中,所以我倾向于暂不分享。

很抱歉我们的代码在创建时并没有想过给他人使用。代码现在并未文档化,我们也没有时间和资源来文档化。如果你有一个特别的计算要做,且不是我们现在做的东西的主要延伸的话,我们可以帮你跑这个代码。

R是一个免费的软件,你可以在www.r-project.org/找到。我用R是因为XX模型。你可能有所了解XX和XX十分复杂。但是我可能不必说这些你已经是个统计学学生了。我都是用Matlab来处理几何的问题。

所以,建议你在阅读研究成果时,先看是否有一份附有所有的原始数据和代码的可重复性声明。如果没有看到一份这样的东西,你可以暂时忽略这个研究。

81faabf331d3ea192af261b277d8e2b390342502

可重复使用说明范例

不能让你的项目具有可复制性是学术上的不端行为,可能会产生严重的后果。例如“未能妥善记录和保存研究成果”是近日康奈尔大学研究员Brian Wansink的受到的不光彩的指控之一 。

在Daniele Procida关于软件文档的黄金标准上,他很好地总结了这一点:

“不管你的软件有多好,如果说明文档不够好,人们就不会使用它。即使出于某种原因,人们没有选择而不得不使用它,没有好的说明文档的话,大家也不能有效地使用它,更不会按照你希望的方式使用它。”

因此,遵循Procida先生的明智建议,你的研究需要让其他人能够轻松地理解你在项目中做了什么,并能复制这些结果。这对于现在和同事的合作至关重要,也对后人有很大帮助(例如,未来某一天你要重新运行一个六个月没碰过的分析的时候,或者任何其他研究员想要重新看一看你的工作的时候)。Leek认为 “花费数据科学项目中10-20%的时间来对你的工作进行组织与文档化”是非常重要的。

文件命名

adb22390a59e5379d31a5e53a615de4a815467a2

文件的命名的方式在数据科学项目中也是非常重要的。

一位对R语言脚本设计、工作流程和文件组织与命名方面颇有见地的数据科学家Jenny Bryan认为有三个原则是必须遵守的:

  • 机器可读

  • 人类可读

  • 很好地处理默认排序

为了机器的可读性,我们希望避免空格、标点符号、句号和任何其他特殊字符(除了“_”和“-”)。

71d580aea661c6c4175dd8e33ba35fb7186ed99b

针对人类的可读性,需要您给文件赋予有意义的名称。当命名R对象时,如果包含了注释的话,缩写对象名称的也是可以的。例如,cv_perf_Recoke_rf是对随机森林模型的每个交叉验证的验证召回的计算。

但是在命名文件时,我建议除非绝对必要,不要使用缩写词;如果使用了的话,请在自述文件中列明这些信息。

另外一个建议是将日期和数字放在文件名的开头。始终使用ISO 8601的日期格式(yyyy-mm-dd)和左起带0的数字。数字的最大位数取决于一共要生成多少个文件。假设你想要保存100个建筑MRI图像文件,那么它应该看起来如此001_t1_mri.nii.gz。假设你认为你实际上会生成1000个文件,它看起来应该如此0025_t1_mri.nii.gz。

Leek还指出,应该避免大小写的敏感性,例如Esophageal-Cancer_Report.md(食道癌报告.md)显然是一个可怕的文件名(输入这串包含大小写的字母和字符真是累死了)。

你也可以用esophagealCancer_report.md,因为它更能看起来更令人愉快,也并未有Leek提到的风险;只要不要忘记在linux中使用find指令时用-iname标志来忽略大小写就好。如果你健忘,或者只是效率很高(也就是懒),你总是可以把它包含在.bashrc文件中作为别名。

让文件名以大写字母开头显然是个坏主意,因为它会导致你需要额外的按键来生成大写字母(例如Shift)。然而,使用camelCase方式,您可以通过使用选项卡来自动完成以避免额外的按键。

OMT

如果你使用R,你应该读一读Jenny Bryan的here()包,它消除了setwd()可能导致的麻烦的工作流程问题。

402d5e939387ee4c5c3d674690b6b4201cd627a8

另外,建议大家去阅读她的博客文章“面向项目的工作流程”它清楚明白的告诉我们更多关于“怎样做”以及“为什么这样做”的信息。


原文发布时间为:2018-10-27

本文作者:茶西、陈同学、Aileen

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“大数据文摘”。

相关文章
|
5天前
|
敏捷开发 监控 数据可视化
2024年十大工程管理软件评测:哪些任务可视化工具能显著提高团队效率?
在数字时代,团队协作和项目管理的效率至关重要。任务可视化工具通过直观展示任务进展、资源分配和优先级,帮助团队高效协作,减少误解和沟通成本。这类工具如Trello、Asana、ClickUp等,不仅提升了任务透明度和团队协作效率,还支持实时监控与反馈,特别适合远程工作和跨部门协作。
2024年十大工程管理软件评测:哪些任务可视化工具能显著提高团队效率?
|
数据采集 机器学习/深度学习 大数据
数据科学与数据治理项目全纪录
数据科学与数据治理项目全纪录
102 0
|
机器学习/深度学习 自然语言处理 算法
制定机器学习规划路线:从入门到专业
制定机器学习规划路线:从入门到专业
|
机器学习/深度学习 数据采集 人工智能
数据科学实训案例研发:农业遥感图像数据分析上线阿里云
这是2020年阿里云计算有限公司-教育部产学合作协同育人项目的成果。 实训课程内容涵盖了主要内容涵盖了图像分割的基础知识,主要包括图像分割的概论、基础、分类、神经网络实现等经典的机器学习理论知识,也包括卷积神经网络、残差网络、U-Net算法、多模态等深度学习内容。此外,还介绍天池AI等平台的应用,在此基础上通过实验的方式,详细地介绍机器视觉在农业大数据分析领域的过程,以及遥感图像处理相关技术的原理与实践。结合阿里云的产品和技术资源,进行应用实验,让学生在充分理解掌握基础知识的同时,也能接触到业界最前沿的发展方向和成果。本课程通过实验大作业的方式,实现典型的机器视觉应用,训练学生模型设计与应用。
608 0
|
SQL 机器学习/深度学习 人工智能
门外汉掌握数据分析处理技术的路线图
数据分析的学习思路与技术分享
218 0
门外汉掌握数据分析处理技术的路线图
|
机器学习/深度学习 JavaScript Java
指明方向与趋势!2019开发者技能报告出炉!!!
近日国外开发者平台 HankerRank 发布了 2019 年开发者技能调查报告( https://research.hackerrank.com/developer-skills/2019 ),该报告根据对71,281开发者的调查得出。
3510 0
|
人工智能 数据挖掘 数据采集
人工智能相关职位数据分析-需求分析
数据收集-爬虫阶段需求 1.利用爬虫收集各大招聘网站的职位数据 2.收集不同职位的招聘信息数据 3.收集全国范围内的招聘信息数据 4.收集字段要求: 职位名title 公司名company 工作地点workPlace(最好精确到市下面的区) 薪资sal...
1372 0
|
机器学习/深度学习 算法 数据挖掘
细数数据科学团队中的十大关键角色
应用数据科学是一项高度跨学科的团队工作,需要用多样性的角度看问题。事实上,比起专业知识和经验,观点和态度的重要性也不容小觑。以下是我对数据科学团队构成的看法。
2680 0
|
机器学习/深度学习 算法 大数据