En el episodio de hoy seguimos hablando de las mejores prácticas para científicos de datos.
La semana pasada hablamos de las primeras tres reglas para mantener el orden en proyectos de ciencia de datos. Sabemos que organizar nuestros experimentos no siempre es fácil, pero debería ser un mantra: orden y claridad. ¡El caos no debería reinar aquí!
Hoy continuamos con más prácticas esenciales para que nuestros proyectos no solo sean útiles, sino también reproducibles, confiables y listos para compartir. Aquí tienes unas cuantas reglas para pasar de científico de datos a ninja de los datos.
La organización es básica en ciencia de datos. Nos encanta probar cosas, hacer mil cambios, pero cuando tienes que mostrar resultados, ese orden es clave. Imagina un Excel donde no entiendes las columnas ni las fórmulas; un proyecto de ciencia de datos sin estructura puede ser mucho peor.
Mi consejo es que uses plantillas como Cookiecutter.
Estas te ayudan a separar los datos crudos, los datos procesados, los notebooks y el código en carpetas. Tener todo organizado desde el principio te facilitará el trabajo y evitará que te encuentres con archivos y scripts sueltos sin saber para qué sirven.
Esto es clave: los datos en crudo no se tocan.
Si transformamos directamente los datos crudos, cualquier error en el proceso puede acabar perdiéndose en una cadena de cambios que no puedes revertir. Así que, mantén una copia inmutable de los datos originales.
Cada vez que transformes datos, trabaja en copias, y documenta bien esas transformaciones. Esto evita que te encuentres con resultados alterados o datos inflados como los de la historia de la empresa energética. La reproducibilidad y claridad en los datos son esenciales para que tus análisis sean útiles y confiables.
Git es la herramienta por excelencia.
Asegúrate de usar control de versiones en tu código y datos. Esto es clave para controlar los cambios y evitar problemas. Git nos permite volver atrás si algo falla y hace más fácil colaborar en equipo. Si estás manejando grandes datasets, prueba DVC (Data Version Control), que facilita el versionado de grandes volúmenes de datos.
Así, si alguien más toma el proyecto, podrá entender los cambios y ver cómo llegaste a los resultados. No hay nada peor que un proyecto donde nadie sabe quién cambió qué.
Te dejo este vídeo para que te introduzcas en el mundo Git (por si no lo has hehco todavía 😊)
Los notebooks son ideales para explorar y experimentar, pero cuando el proyecto crece, se vuelven una pesadilla.
Si te encuentras con un notebook gigantesco que incluye todo el flujo de datos, varios experimentos y pruebas, créeme, no es la mejor práctica.
Utiliza notebooks para la parte exploratoria.
Luego, organiza el código en archivos .py
y estructura el proyecto. Esto hace que sea más fácil de reutilizar y adaptar.
También evita tener que copiar y pegar código de un notebook a otro cuando quieras probar algo nuevo.
Además, cualquier colaborador te lo agradecerá y tu yo del futuro, más todavía.
En ciencia de datos, los proyectos son experimentales y dependen mucho de los datos, pero eso no significa que no podamos hacer pruebas.
La famosa integración continua nos permite verificar que el código funciona y que los datos se manejan correctamente.
No necesitamos probar con datasets enormes; empieza con un dataset pequeño y realiza comprobaciones rápidas: ¿los valores nulos están donde deberían? ¿las dimensiones son correctas?
Es mejor detectar errores en estas pruebas pequeñas que encontrarse con un fallo después de semanas de trabajo.
No te olvides de probar con datasets de juguete para ver cómo responde el código.
Los fallos silenciosos son los peores. Tu proyecto puede estar funcionando mal durante semanas sin que te des cuenta.
Para evitar esto, usa aserciones y excepciones en tu código.
Las aserciones son como alarmas: si algo no cumple con lo esperado, el programa se detiene.
Por ejemplo, si trabajas con temperaturas, una aserción puede asegurar que todos los valores estén dentro de un rango lógico.
Las excepciones te ayudan a manejar situaciones fuera de lo común. Si el sistema no sabe cómo gestionar algo, mejor parar y avisarte que dejar que el error siga creciendo en el fondo.
Para que todo funcione como debería, necesitamos automatizar el proceso.
Desde los datos crudos hasta los resultados finales, automatizar la pipeline de datos es esencial.
Esto nos permite reproducir el trabajo y asegura que cada paso se ejecute correctamente.
¿La clave?
Crear un entorno reproducible, con las mismas versiones de librerías y dependencias.
Si configuramos bien la pipeline y el entorno, no tendremos sorpresas cuando el proyecto se ejecute en otro ordenador. La consistencia es clave en ciencia de datos.
Es fácil perder el control de los parámetros cuando están dispersos por todo el código.
Centraliza los parámetros importantes en un archivo o en una sección específica.
Así, puedes ver de un vistazo qué configuraciones estás usando y ajustarlas de manera segura.
Imagina una pipeline con múltiples modelos, ajustes y configuraciones. Si esos parámetros están esparcidos, el proyecto se convierte en un laberinto. Si todo está centralizado, cualquier cambio es más sencillo y seguro.
Empieza siempre con una pipeline mínima viable.
Crear una versión sencilla que conecte todas las partes y produzca un resultado básico es una excelente manera de asegurarte de que todo está en su sitio.
Una vez que lo básico esté listo, puedes mejorar iterativamente, añadiendo complejidad y optimizaciones sin miedo a romperlo todo.
Este enfoque te permite avanzar de manera controlada y segura. Validar cada cambio asegura que el proyecto sigue funcionando mientras crece en complejidad.
Para implementar estas prácticas, existen herramientas específicas que pueden hacer tu vida más fácil:
Con estas herramientas y buenas prácticas, tendrás proyectos de ciencia de datos que aporten valor, sean fáciles de mantener y, lo más importante, no se conviertan en un caos lleno de experimentos sueltos.
¡Es momento de pasar de científico a ninja de los datos!
Espero que te guste el episodio.
Si es así, no olvides dejar un «Me gusta» y algún comentario al episodio en Ivoox o una valoración de 5 estrellas del podcast en Apple podcasts, en Spotify, en Youtube o donde quiera que escuches el podcast.
Recuerda que si tienes cualquier duda o pregunta puedes contactar conmigo a través del formulario de contacto o podemos seguir la conversación en Twitter.
Muchas gracias por estar ahí y te espero en el próximo episodio de Un Podcast Ninja sobre Big Data.