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 레이아웃) 또는 최신 릴리스를 선택할 수 있습니다.

작동 방식

  1. 설치 (권장: pipx 사용)
    pipx install cookiecutter-data-science
    
  2. 생성기 실행
    ccds            # 프로젝트 이름, 모듈 이름, 라이선스 등을 묻는 프롬프트가 표시됨
    
  3. 인터랙티브 질문에 답변. CCDS 는 선택한 옵션에 맞는 디렉터리 구조를 생성합니다.
  4. 생성된 {{ cookiecutter.module_name }} 패키지 내에서 코드 작성하고 제공된 Makefile 단축키(make data, make 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 data, make train, make 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 = 데이터 폴더부터 시작 문서 사이트까지 포함된 깔끔하고 체계적인 데이터 과학 리포지터리를 1개의 명령어로 빠르게 생성하는 방법으로, 협업과 재현 가능한 작업을 훨씬 원활하게 만듭니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트