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.
Respuestas:
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.
fuente
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
fuente