Cuando iniciamos un proyecto de Machine Learning solemos cometer el error de creer que solo un científico de datos puede llevarlo a cabo y que debemos invertir grandes cantidades de dinero en un perfil sin ni siquiera entender cuál debe ser su rol y alcance dentro del proyecto. La realidad es que en un proyecto de Machine Learning debemos contar siempre con el perfil de un ingeniero de datos, en ocaciones necesitaremos los dos perfiles pero en muchas ocaciones también podemos ejecutar un proyecto solo con un ingeniero de datos, esto dependerá del tipo de proyecto, el diseño y las herramientas de desarrollo.
En este post veremos las principales diferencias en el perfil de un ingeniero de datos (data engineer) y un científico de datos (data scientist), qué herramientas debo escoger según el perfil y qué tipo de proyectos puedo desarrollar con cada perfil.
En un proyecto de Machine Learning necesitamos combinar tres grandes áreas de conocimiento:
- Programación: herramientas de desarrollo, lenguajes de programación, bases de datos, servicios web, seguridades, etc.
- Analítica de datos: Modelos matemáticos y estadísticos, algoritmos de aprendizaje, exploración de datos.
- Negocio: Dominio del negocio y planteamiento del problema.

El perfil de un científico de datos debe combinar fuertes conocimientos de negocio y de analítica de datos pero no necesariamente es un experto en programación por lo que su alcance debería limitarse a la exploración de datos y entrenamiento de modelos de Machine Learning, pero su alcance no debería incluir el desarrollo de servicios web para realizar predicciones o las integraciones con las aplicaciones de negocio.
El perfil de un ingeniero de datos debe combinar fuertes conocimientos de negocio y de programación pero no es necesario que sea un experto un analítica de datos. Su alcance puede iniciar luego del entrenamiento del modelo y debe ser el responsable de construir los componentes necesarios para la implementación del modelo en las aplicaciones del negocio y en un ambiente productivo.

Lo interesante en el perfil de un ingeniero de datos es que es el responsable de que el proyecto de Machine Learning entregue valor al cliente a través de su implementación en una aplicación de negocio.
Hagamos una analogía con un equipo de Fórmula 1. Pensemos en dos roles importantes que hacen a un equipo ganador, por un lado tenemos al diseñador del auto, un perfil que conoce mucho de aerodinámica, de matemáticas y del funcionamiento en general de un auto, y por otro lado tenemos al piloto que maneja el auto y que sabe cómo sacarle el mejor rendimiento en la pista. En nuestra analogía el diseñador del auto sería el científico de datos mientras el piloto que maneja el auto en la pista sería nuestro ingeniero de datos.

Así como el alcance de cada perfil en un proyecto varía, también varían las herramientas en las que cada perfil debe especializarse. Por ejemplo un científico de datos puede especializarse en herramientas para explorar datos como Jupyter Notebooks y librerías para entrenar modelos manualmente como PyTorch y scikit-learn. Mientras que un ingeniero de datos debe conocer suits enteras de desarrollo como .Net Core, contenedores Docker, Azure App Service, por mencionar algunas, además debe conocer librerías de AutoML como ML.NET o Amazon Machine Learning.

En cuanto a los proyectos en que cada perfil puede desarrollar podemos mencionar el desarrollo de modelos no supervisados de Machine Learning, modelos de tarificación actuarial o modelos de scoring, dentro del perfil de científico de datos. Mientras que un ingeniero de datos puede desarrollar modelos supervisados de Machine Learning, automatización de procesos con servicios cognitivos, mejora continua de modelos con DevOps o MLOps.
En conclusión, en un proyecto de Machine Learning ambos perfiles son muy importantes pero muchas empresas ignoran la importancia del rol del ingeniero de datos, siendo este perfil el que puede implementar el proyecto en un ambiente productivo haciendo que se entregue un valor agregado al negocio y al cliente final y de esto puede depender el éxito o fracaso de nuestros proyectos.
Artículos relacionados
Machine Learning | Cómo predecir más de una categoría usando ML.NET
Data Storytelling | La importancia de saber contar historias