Estructura de proyecto de Python Machine Learning / Data Science

10

Estoy buscando información sobre cómo debe organizarse un proyecto de Python Machine Learning. Para los proyectos habituales de Python existe Cookiecutter y para R ProjectTemplate .

Esta es mi estructura de carpetas actual, pero estoy mezclando Jupyter Notebooks con el código real de Python y no parece muy claro.

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

Trabajo en la carpeta de scripts y actualmente agrego todas las funciones en los archivos en my_module, pero eso genera errores al cargar datos (rutas relativas / absolutas) y otros problemas.

No pude encontrar las mejores prácticas adecuadas o buenos ejemplos sobre este tema además de algunas soluciones de competencia de kaggle y algunos cuadernos que tienen todas las funciones condensadas al comienzo de dicho cuaderno.

David Gasquez
fuente
Vea si esto ayuda (sin experiencia personal).
Emre

Respuestas:

4

Todavía no creo que haya mejores prácticas en esta área de desarrollo, pero, además de cookiecutter, se mostraron algunas ideas interesantes en un tutorial en la conferencia SciPy 2016: http://isaacslavitt.com/2016/07/20/ data-science-is-software-talk /

Personalmente, trato de minimizar el número de subcarpetas en un proyecto a menos que tenga una buena manera de distinguirlas y tenga una buena razón para mantenerlas separadas. La mala organización es casi tan mala como ninguna organización. Creo que las mejores prácticas pueden depender del caso de uso: no todos los proyectos necesitan la misma cantidad de repeticiones.

RHC
fuente
3

La Universidad de Washington ha lanzado una plantilla de proyecto para pequeños proyectos científicos de pitón (incluidos los proyectos de ciencia de datos) llamado shablona. ¿Es eso más o menos lo que estás buscando?

https://github.com/uwescience/shablona

taquiclina
fuente