我和我的三个同学参加了一场黑客马拉松,有10天的时间。我们得到了一个数据集,并且必须预测一个变量。但是,我想知道在这样的项目中使用git的最佳方法是什么。我们有两个主要目录模型和数据。作为一项数据科学项目,需要进行大量的数据预处理。我们使用jupyter笔记本,既用于数据清理,也用于模型本身。我们如何在git-repo-结构方面作为一个团队有效地清理数据?我不知道如何正确地管理回购。每个人都应该有自己的分支吗?或者,如果每个人都在主分支上工作,并推送更新的数据集和jupyter笔记本,会更方便吗?因为通常在主分支中没有“运行系统”。我们对数据和模型做了大量的实验。使用git有意义吗?不过,对于这个混乱的问题,我很抱歉
发布于 2021-04-03 23:44:11
根据我的经验,数据科学和软件开发在根本上是不一致的。通常,数据科学的需求获胜,因为这些需求与业务需求直接相关,结果(如果您不小心的话)是混乱的、混乱的代码,没有人可以遵循(包括您)。
“数据科学”要求你问很多问题,这意味着你要尽可能快地迭代。你编写的大部分代码不会给出你想要的答案,所以你最终会得到一堆混乱的一次性脚本。有时候很难知道你写的脚本是否值得去写。
“软件开发”除了实际编写代码外,还需要文档、计划、测试、重构以保持代码的可读性等。这要求你放慢速度,这是“数据科学”不希望你做的。显然,这是黑客马拉松,因此“规则”更轻松,但它们的存在使开发代码和团队工作变得更容易,这是您正在尝试的。
简短的回答:是的,你应该使用git。
在不了解更多项目的情况下,以下是一些更具体的建议:
data (针对dataset)、model (以及您正在尝试的每个模型的子目录)、cleaning (用于清理脚本,请参见下面)以及plots或output分别设置单独的目录,并尽可能将它们保持干净。如果一个模型有大量混乱的脚本,因为你正在实验,至少这种噪音是被控制的。这也使得划分工作更加容易,一个目录=一个任务。pyenv和virtualenv (或者您最喜欢的语言,因为有几种方法可以这样做)。根据我的经验,许多“数据科学”包在更改版本时可能会变化无常(特别是当您开始使用GPU计算和其他有趣的东西时),所以让团队坚持运行时的一个版本和相关的包可以节省很多麻烦。https://stackoverflow.com/questions/66936016
复制相似问题