5 Prácticas de ingeniería de software en Data Science

Victoria Ubaldo
Tips & Tools

--

En diversos proyectos en ciencia de datos (data science) vamos a encontrar diversos roles y funciones. En mi experiencia con un background de ingeniería de software pude encontrar tareas y actividades muy necesarias y esenciales que conocía y pude aplicarlas en proyectos de data science. Depende del proyecto y del tiempo que se cuente, estos son los conceptos básicos que todo analista o desarrollador debe aprender o repasar sobre ingeniería de software. Here we go!

Documentación :

La documentación nos permite tener claro las partes de un código, además conocer el propósito de cada componente del código.

¿Qué veremos en proyectos de data science? Varios archivos de códigos en lenguaje de programación Python, R, SQL o Scala que suelen pasarse de analista a analista. Tener esta documentación nos ahorra tiempo en comprensión y nos mejora la productividad.

Los tipos de documentación son:

  • Nivel linea
  • Nivel Función o módulo
  • Nivel proyecto

Control de Versiones:

Como mencionamos anteriormente, trabajaras con mucho código , ¿como lo mantenemos de manera ordenada, ya sea si trabajo individual o en equipo? Lo ideal es usar un repositorio de control de versiones. Instalamos GIT y con una cuenta de Github, Gitlab o Bitbucket creamos un repositorio que contenga nuestro código.Usando la terminal o cmd con pocas lineas de comando podremos hacer estas tareas.

En data science además es esencial usar este control de versiones debido a que iteramos seguido hasta obtener los indicadores adecuados de nuestro modelo de predicción y posiblemente probar con versiones anteriores, mejorando la precisión con otros features o variables.

Pruebas (testing):

Cuando trabajamos con código es importante detectar fallas tempranas y tener confianza en el resultado. En data science encontrar errores no es siempre sencillo detectarlos , ¿Qué podemos evitar con el testing en proyectos de data science ? Aquí algunos ejemplos :

  • Encoding incorrecto : el código no detecta problemas de encoding UTF-8 de los datos (típicamente en fechas, emails, coordenadas).
  • Resultados inapropiados : el código no realiza una correcta limpieza de los datos.
  • Resultados Inesperados : el código del modelo tiene mucho BIAS (sesgo) al evaluarlo con datos reales.

¿Cómo se resuelve con el testing?

Para detectar estos errores en data science debemos revisar la calidad y accuracy(precisión) de nuestro análisis , además de la calidad del código.

Las técnicas más usadas son:

  • Test Driven Development : es un proceso de desarrollo donde escribes test para cada tarea antes de escribir código que implemente estas tareas.
  • Unit Test : es un tipo de prueba que solo cubre una unidad de código, puede ser una función, independientemente del resto del programa.

Logging:

Los logs nos ayudan a revisar los eventos durante la ejecución de nuestro programa. Por ejemplo, si necesitas ejecutar un modelo con una dataset super grande, lo dejarás ejecutando de un dia para otro y solo revisarás el log para revisar qué está ocurriendo , si terminó satisfactoriamente o si tiene errores. Logging es el proceso de grabar los mensajes que describen los eventos que ocurren mientras el software se encuentra corriendo.

Los niveles de logs son :

  • DEBUG : nivel donde deberías usarlo para revisar cada paso o evento que suceda en el programa.
  • ERROR : nivel donde se graban todos los errores ocurridos.
  • INFO : nivel donde se graban todas las acciones que son sugerencias o informativas por el sistema, es típico las operaciones programadas regularmente.

Algunos de los tips para un adecuado log es : ser profesional y claro, conciso y usar una normal capitalización (mayúsculas y minúsculas), provea cualquier información útil y escoger el apropiado nivel de logging.

Revisión de Código (Code Review):

Los code reviews ayudan a un equipo en promover mejores prácticas de programación y preparar el código a producción. También ayuda en revisar los estándares, asegurar que el código sea legible y compartir conocimiento a todo el equipo.

Conclusiones

Estas prácticas son importantes aplicarlas en mis tareas en proyectos de data science y me ha ayudado a tener orden y calidad. En data science es esencial la perspectiva de software , los anteriores puntos te ayudará a aportar en estos proyectos con toda tu experiencia en desarrollo y crecer en este apasionante mundo de los datos, mejorando tu productividad y el de tu equipo y disminuir errores.

Te invito a seguirme en mis redes sociales :

Otros artículos que te pueden interesar

--

--

Victoria Ubaldo
Tips & Tools

SW Engineer & DS enthusiast. Books, dogs, travel and code. WTM Ambassador Lima.