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.txt、Makefile和pyproject.toml,只需一个命令即可重建环境。 - 高效性 – 运行
ccds可在几秒内创建所有样板文件,让您专注于分析而非文件夹设置。 - 可扩展性 – 模板已版本化;您可以选择特定标签/分支(例如旧版 v1 布局)或最新发布版本。
如何工作
- 安装 该工具(推荐使用
pipx):pipx install cookiecutter-data-science - 运行 生成器:
ccds # 会提示输入项目名称、模块名称、许可证等 - 回答 交互式问题;CCDS 会根据所选选项生成对应目录结构。
- 在生成的
{{ cookiecutter.module_name }}包内开始编码,并使用提供的Makefile快捷命令(make data、make train等)执行常见任务。
生成骨架的关键部分
| 路径 | 用途 |
|---|---|
data/ |
存放原始、外部、中间和处理后数据的子文件夹(只读原始数据有助于追踪数据来源)。 |
notebooks/ |
采用命名规范的 Jupyter 笔记本,按顺序排列并记录作者首字母。 |
{{ cookiecutter.module_name }}/ |
包含以下内容的 Python 包: |
config.py– 中央配置值dataset.py– 下载/生成辅助函数features.py– 特征工程工具modeling/–train.py和predict.pyplots.py– 可复用的绘图函数 | |models/| 存放序列化模型、预测结果或模型摘要。 | |docs/| 项目文档的初始 mkdocs 站点。 | |reports/| 生成的分析输出(HTML、PDF、LaTeX)和figures/子文件夹。 | |Makefile| 便捷命令(make data、make train、make test等)。 | |pyproject.toml与setup.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 会说明项目特定的工作流程。
扩展 / 贡献
- 仓库包含模板本身和
ccdsCLI。 - 开发依赖列在
dev-requirements.txt中。 - 使用
pytest tests运行测试套件。 - 欢迎贡献;请参阅在线 贡献指南。
TL;DR
ccds = 通过一个命令快速搭建一个整洁、结构良好的数据科学仓库,包含从数据文件夹到初始文档站点的所有内容,使协作和可复现工作变得顺畅得多。
相关
- 项目
- 项目
- 项目
- 项目
- 项目