¡Participa de la Maratón Behind the Code, la competencia de programación más desafiante! Inscríbete aqui

Desarrollar modelos de machine learning con y sin AutoML

La posición de un científico de datos es una a la que muchas personas aspiran, pero puede tener responsabilidades y desafíos exigentes. Algunos de estos desafíos incluyen seleccionar el mejor algoritmo para tu caso de uso y modificarlo en varias iteraciones, identificar y ajustar el conjunto correcto de hiperparámetros varias veces antes de volver a los valores predeterminados y esperar a que termine el último período de tu modelo.

A pesar de pasar por algunos procesos complejos, es realmente gratificante ver cómo tu modelo de machine learning supera la precisión esperada. Existe el mito de que a los desarrolladores les encanta exagerar la codificación y hacer más de lo necesario. Pero, ¿no es la eficiencia y automatización de procesos la razón principal por la que el desarrollador escribe programas? Si bien las habilidades ejemplares que tiene un científico de datos no son discutibles, muchos de los procesos y pasos que realiza un científico de datos son repetibles, requieren mucho tiempo y son propensos a errores humanos, lo que los convierte en candidatos ideales para la automatización.

AutoAI

Automated Machine Learning (AutoML) permite a los usuarios con poco o ningún conocimiento generar varios modelos de machine learning con unos pocos clics. Además, al usar AutoML, un científico de datos especializado puede eliminar los puntos débiles de desarrollar un modelo y llegar al centro de la resolución de problemas. Por estas razones, AutoML ha ganado popularidad recientemente.

En este artículo, analizo y destaco las características de AutoAI, una herramienta de machine learning automatizada que ayuda a simplificar la gestión del ciclo de vida de la inteligencia artificial. Usaré las experiencias de dos científicos de datos para comparar y contrastar el desarrollo de modelos predictivos con y sin el uso de AutoAI.

Desarrollar un modelo de machine learning sin AutoAI

Bob es un científico de datos senior que trabaja para un banco en Alemania. Actualmente, está desarrollando un modelo de machine learning que predice si hay algún riesgo al aprobar un préstamo para un cliente.

Modelo de machine learning tradicional

Empiezo por describir algunos de los pasos que Bob realiza para desarrollar este modelo. Primero él pasa por el tedioso proceso de instalar las diversas herramientas y bibliotecas como Jupyter, Python y scitkit-learn. Luego escribe código en Python para analizar y visualizar los datos. Después de reelaborar los datos varias veces, elige un algoritmo adecuado para resolver el problema de clasificación binaria del análisis de riesgo y escribe código para preprocesar los datos de forma adecuada. Esto implica pasos para manejar datos faltantes o subrepresentados y manejar variables categóricas.

El siguiente paso en el proceso es usar las API correctas de la biblioteca scikit-learn para dividir los datos en conjuntos de datos de entrenamiento y prueba, y desarrollar el modelo basado en los datos de entrenamiento. Cuando el modelo está listo, se inicia el proceso de entrenamiento, que puede demorar hasta varias horas dependiendo del tamaño de los datos y del procesador utilizado. Después de evaluar en el conjunto de prueba, si no se logra la precisión requerida, Bob debe analizar más los datos, ajustar los hiperparámetros y rehacer el proceso anterior hasta que el modelo funcione como se esperaba.

El código completo de Python escrito por Bob está disponible como un notebook de Python. Se llama AutoAI Manual Asset y se puede descargar y ejecutar. Para ver una implementación detallada, consulta el tutorial Crea y prueba tu primer modelo de machine learning utilizando Python y scikit-learn.

Desarrollar un modelo de machine learning con AutoAI

Lauren, colega de Bob, también es científica de datos senior. Ella investiga AutoML e identifica a AutoAI como una herramienta ideal para desarrollar el mismo modelo de riesgo que Bob está desarrollando.

Persona de AutoAI

Lauren toma el conjunto de datos de riesgo crediticio y lo carga en la herramienta AutoAI. Luego selecciona la columna que predecirá el modelo. En este punto, AutoAI ya ha determinado que se trata de un problema de clasificación binaria y enumera varios algoritmos que se pueden utilizar para resolverlo. De forma predeterminada, se eligen los dos algoritmos principales, pero Lauren puede anular estas opciones y considerar hasta cuatro algoritmos. Cada algoritmo genera cuatro pipelines, cada uno es una variación del otro.

prueba

Detrás de escena, AutoAI realiza los siguientes pasos para generar cada uno de los modelos de pipeline.

  1. Preprocesamiento de datos
  2. Selección automatizada de modelo
  3. Automatización de la ingeniería de funciones
  4. Optimización de hiperparámetros

El tutorial sobre cómo generar pipelines de modelos de machine learning para elegir el mejor modelo para tu problema utilizando AutoAI ofrece una descripción detallada de cómo Lauren desarrolló el modelo de riesgo crediticio.

Con AutoAI, Lauren también puede descargar el pipeline como código Python formateado como un notebook. El Code pattern de Generar un notebook de Python para modelos de pipeline utilizando AutoAI describe los pasos para generar el notebook y también cómo ejecutar y desplegar el modelo en Watson Machine Learning.

Comparar el desarrollo de modelos con y sin AutoAI

Con el mismo conjunto de datos de riesgo crediticio que Bob y Lauren utilizaron para desarrollar el modelo de previsión de riesgo, es posible ver diferencias significativas en las distintas métricas clave. En la siguiente tabla, muestro la experiencia y los resultados de Bob y Lauren basados en sus estrategias de desarrollo de modelos.

Comparar

En la tabla, es posible ver cómo el uso de AutoAI para desarrollar un modelo de machine learning le permitió a Lauren ahorrar una cantidad significativa de tiempo y esfuerzo. Tiene acceso a varios modelos que se generan y puede elegir el modelo que mejor se adapte a sus criterios de evaluación. Lauren también tiene acceso a los modelos que puede desplegar en Watson Machine Learning como una API REST. El código de Python que se utilizó para generar el modelo de pipeline también se descarga como un notebook.

Resumen

El uso de AutoAI para desarrollar modelos de machine learning puede ahorrarte mucho tiempo y esfuerzo en comparación con la creación manual de los mismos modelos. Los pasos que son repetibles, demorados y propensos a errores humanos, son candidatos ideales para la automatización.