Estrutura do projeto Python Machine Learning / Data Science


10

Estou procurando informações sobre como deve ser organizado um projeto de aprendizado de máquina do Python. Para projetos usuais do Python, existe o Cookiecutter e para o R ProjectTemplate .

Esta é a minha estrutura de pastas atual, mas estou misturando Jupyter Notebooks com o código Python real e isso não parece muito claro.

.
├── cache
├── data
├── my_module
├── logs
├── notebooks
├── scripts
├── snippets
└── tools

Eu trabalho na pasta scripts e atualmente adiciono todas as funções nos arquivos em my_module, mas isso leva a erros ao carregar dados (caminhos relativos / absolutos) e outros problemas.

Não consegui encontrar boas práticas adequadas ou bons exemplos sobre esse tópico, além de algumas soluções de competição kaggle e alguns Notebooks com todas as funções condensadas no início desse Notebook.


Veja se isso ajuda (sem experiência pessoal).
Emre

Respostas:


4

Acho que ainda não há boas práticas nessa área em desenvolvimento, mas, além do cookiecutter, algumas idéias interessantes foram mostradas em um tutorial na conferência SciPy 2016: http://isaacslavitt.com/2016/07/20/ data-science-is-software-talk /

Pessoalmente, tento minimizar o número de subpastas em um projeto, a menos que tenha uma maneira realmente boa de distingui-las e tenha boas razões para mantê-las separadas. Má organização é quase tão ruim quanto nenhuma organização. Eu acho que as melhores práticas podem depender do caso de uso - nem todo projeto precisa da mesma quantidade de clichê.


3

A Universidade de Washington lançou um modelo de projeto para pequenos projetos científicos de python (incluindo projetos de ciência de dados) chamado shablona. É isso mais ou menos o que você está procurando?

https://github.com/uwescience/shablona

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.