drivendataorg/cookiecutter-data-science

A logical, reasonably standardized, but flexible project structure for doing and sharing data science work.

是什么

Cookiecutter Data Science (CCDS) 是一个小型命令行工具,用于为数据科学工作生成即用型项目骨架。它基于通用的 cookiecutter 模板工具,但增加了专用的 ccds 命令和遵循最佳实践的预设文件夹结构。


为什么重要

  • 一致性 – 每个新项目都从相同的逻辑目录树(原始数据、笔记本、模型、文档等)开始,使团队成员更容易上手并理解彼此的工作。
  • 可复现性 – 模板包含 requirements.txtMakefilepyproject.toml,只需一个命令即可重建环境。
  • 高效性 – 运行 ccds 可在几秒内创建所有样板文件,让您专注于分析而非文件夹设置。
  • 可扩展性 – 模板已版本化;您可以选择特定标签/分支(例如旧版 v1 布局)或最新发布版本。

如何工作

  1. 安装 该工具(推荐使用 pipx):
    pipx install cookiecutter-data-science
    
  2. 运行 生成器:
    ccds            # 会提示输入项目名称、模块名称、许可证等
    
  3. 回答 交互式问题;CCDS 会根据所选选项生成对应目录结构。
  4. 在生成的 {{ cookiecutter.module_name }} 包内开始编码,并使用提供的 Makefile 快捷命令(make datamake train 等)执行常见任务。

生成骨架的关键部分

路径 用途
data/ 存放原始、外部、中间和处理后数据的子文件夹(只读原始数据有助于追踪数据来源)。
notebooks/ 采用命名规范的 Jupyter 笔记本,按顺序排列并记录作者首字母。
{{ cookiecutter.module_name }}/ 包含以下内容的 Python 包:
  • config.py – 中央配置值
  • dataset.py – 下载/生成辅助函数
  • features.py – 特征工程工具
  • modeling/train.pypredict.py
  • plots.py – 可复用的绘图函数 | | models/ | 存放序列化模型、预测结果或模型摘要。 | | docs/ | 项目文档的初始 mkdocs 站点。 | | reports/ | 生成的分析输出(HTML、PDF、LaTeX)和 figures/ 子文件夹。 | | Makefile | 便捷命令(make datamake trainmake test 等)。 | | pyproject.tomlsetup.cfg | 包元数据和代码检查配置(如 Black、flake8)。 | | requirements.txt | 精确锁定 Python 依赖项以确保可复现性。 |

快速上手

# 1. 安装工具(只需一次)
pipx install cookiecutter-data-science

# 2. 创建名为 "my-analysis" 的新项目
ccds   # 按提示操作,将模块名设为 "my_analysis"

# 3. 进入新文件夹并运行第一个 make 目标
cd my_analysis
make data   # 占位符 – 可替换为自己的命令

新文件夹内的生成 README.md 会说明项目特定的工作流程。


扩展 / 贡献

  • 仓库包含模板本身和 ccds CLI。
  • 开发依赖列在 dev-requirements.txt 中。
  • 使用 pytest tests 运行测试套件。
  • 欢迎贡献;请参阅在线 贡献指南

TL;DR

ccds = 通过一个命令快速搭建一个整洁、结构良好的数据科学仓库,包含从数据文件夹到初始文档站点的所有内容,使协作和可复现工作变得顺畅得多。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目