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 = 透過一個指令快速搭建一個整潔、結構良好的資料科學倉儲,包含從資料資料夾到初始文件站台的所有內容,使協作與可重現工作變得更順暢。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案