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 がテンプレートに含まれており、1つのコマンドで環境を再作成できます。
  • 高速性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.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 は、プロジェクト固有のワークフローについて説明しています。


拡張・貢献方法

  • リポジトリにはテンプレート自体と ccds CLI が含まれています。
  • 開発依存関係は dev-requirements.txt に記載されています。
  • テストスイートは pytest tests で実行できます。
  • 貢献は歓迎です。オンラインの貢献ガイドをご覧ください。

TL;DR

ccds = 1コマンドで、データフォルダからスタートドキュメントサイトまでを含む、清潔で整理されたデータサイエンスリポジトリを迅速に構築する方法。共同作業と再現性の高い作業を格段にスムーズにします。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト