Cómo funciona AutoML

Existe un proceso o flujo de trabajo general asociado a un proyecto de aprendizaje automático (AA). Un flujo de trabajo de AA típico empieza por identificar el problema empresarial y formular la declaración o la pregunta del problema. A ello le siguen una serie de pasos, incluidos: preparación de datos (o preprocesamiento), ingeniería de entidades, selección de un algoritmo adecuado y entrenamiento de un modelo, ajuste de hiperparámetros y evaluación del modelo. Es un proceso iterativo y el modelo óptimo se alcanza a menudo solo después de varias iteraciones y experimentos.

Algoritmos de AutoML

Identidicar el modelo que mejor se adapte a los datos conlleva mucho tiempo, esfuerzo y conocimientos expertos en todo el proceso de AA. La herramienta Entrenar con AutoML automatiza todo este flujo de trabajo e identifica el mejor algoritmo con el mejor conjunto de hiperparámetros que se ajustan a los datos. Esta implementación se basa en una implementación de código abierto denominada mljar-supervised. En las siguientes secciones se describe cada uno de los pasos del proceso de AA en más detalle.

Flujo de trabajo de Entrenar con AutoML

La herramienta Entrenar con AutoML automatiza lo siguiente:

  1. Preprocesamiento de datos: los proyectos de AA exitosos requieren la recopilación de datos de entrada de alta calidad que abordan un problema específico. Estos datos pueden proceder de fuentes de datos dispares y tal vez sea necesario combinarlos. Una vez que se hayan recopilado y sintetizado los datos, es necesario limpiarlos y eliminar el ruido para garantizar que los algoritmos de AA puedan entrenarse eficazmente con ellos y aprender de estos. Este paso suele requerir tiempo y ser tedioso y puede requerir conocimientos y experiencia detallados y específicos de un dominio. La limpieza de datos puede implicar identificar y manejar los valores que faltan, detectar valores atípicos, corregir datos mal etiquetados, etc., y todo pueden requerir una gran cantidad de tiempo y esfuerzo del profesional de AA. Estos son los pasos de preprocesamiento:

    • Eliminar valores atípicos: los valores atípicos son puntos de datos que no son similares al resto de puntos de datos. Entre los motivos de estos valores atípicos se encuentran errores en la introducción de datos, errores de medición de datos o una disimilitud legítima. Independientemente de la causa, es importante eliminar los valores atípicos de los datos, ya que tienden a confundir al modelo durante la fase de entrenamiento. Los métodos comunes para abordar valores atípicos corrigen las entradas manualmente o eliminar las entradas del dataset.
    • Imputar los valores que faltan: es posible que falten valores en algunas de las columnas del dataset. Los modelos de aprendizaje automático no se pueden entrenar si faltan entradas en los datos de entrenamiento. Para asegurarse de que no falten entradas en el dataset, rellene las entradas que faltan con datos válidos utilizando un proceso llamado imputación de datos. Las estrategias para rellenar estas entradas que faltan incluyen agregar la ocurrencia más común del valor o agregar un nuevo valor para resaltar que faltan datos. Para los datos numéricos, las estrategias también pueden ser utilizar el valor medio o la mediana de todas las entradas de la columna de datos que faltan. Actualmente, se puede determinar ejecutando la herramienta Rellenar valores que faltan. La herramienta Rellenar valores que faltan proporciona la capacidad de no solo imputar una estadística global de la columna, sino también de usar estrategias espaciales como vecinos locales, vecinos de espacio-tiempo o estrategias temporales como, por ejemplo, valores de serie temporal.
    • Escalar y normalizar los datos: una de las suposiciones básicas cuando se entrena un modelo de aprendizaje automático de un modelo lineal como OLS (los residuales), es que los datos que se están entrenando se distribuyen de la forma habitual; es decir, siguen una curva de campana.
      Datos distribuidos normalmente

      Antes de utilizar un modelo lineal, asegúrese de que cada una de las columnas del dataset esté distribuida de forma normal. Si alguna de las columnas no está distribuida de forma normal, las transformaciones se aplican normalmente a los datos para convertirlos a una distribución normal.

      Asegúrese de que todas las columnas del dataset estén en la misma escala para que el modelo no otorgue importancia a las columnas cuyos valores caen en la escala más grande. Se realiza aplicando técnicas de escalado en el dataset.

      Aunque lo anterior podría ser cierto para modelos lineales, otros algoritmos como la regresión logística y especialmente los modelos basados en árboles como Árbol de decisión, Árbol extra, Bosque aleatorio, XgBoost y LightGBM, no asumen ninguna normalidad y son más sólidos ante las diferencias en escala, distribuciones sesgadas, etc.

    • Convertir datos de categorías a numéricos: la mayoría de modelos de aprendizaje automático requiere que los datos que se utilicen para el entrenamiento se presenten en forma de números. No pueden trabajar con otros tipos de datos. Convierta columnas no numéricas tales como State, Country, City o Land cover category, Construction type, Dominant political party, etc., en números. Las técnicas que se utilizan para convertir datos de categorías en números incluyen la codificación de etiquetas y la codificación one-hot.

  2. Ingeniería de entidades y selección de entidades: las columnas que se utilizan durante el proceso de entrenamiento del modelo se denominan entidades. La funcionalidad de estas entidades varía mientras el modelo aprende. Puede que algunas de las entidades no sean útiles y, en tales casos, el modelo mejora cuando las entidades se eliminan del dataset.

    Los enfoques como la eliminación recursiva de entidades y las técnicas de entidades aleatorias ayudan a determinar la funcionalidad de las entidades en el dataset y las entidades que no son funcionales en dichos enfoques por lo general se eliminan.

    En algunos casos, combinar varias entidades en una sola entidad mejora el modelo. Este proceso se denomina ingeniería de entidades.

    Aparte de las nuevas entidades obtenidas al combinar varias entidades de la entrada, la herramienta también crea entidades espaciales con nombres de zone3_id a zone7_id cuando se utiliza la opción Avanzado. Estas nuevas entidades se generan asignando la ubicación de las entidades de entrenamiento de entrada a varias cuadrículas espaciales (hasta cinco) de tamaños diferentes y utilizando los Id. de cuadrícula como variables independientes de categorías con nombres de zone3_id a zone7_id. Proporciona información espacial relevante para los modelos y les ayuda a obtener más información de los datos disponibles.

  3. Entrenamiento de modelos y selección de modelos: en el paso de entrenamiento del modelo, el profesional de AA elige el algoritmo de AA adecuado en función del problema y las características de los datos. Después, comienza el proceso iterativo de entrenamiento del modelo para que se ajuste a los datos, lo que a menudo incluye experimentar con varios algoritmos de AA diferentes. Cada uno de estos algoritmos puede tener muchos hiperparámetros diferentes, que son valores especificados manualmente por el profesional de AA, los cuales controlan cómo aprende el modelo. A continuación, estos hiperparámetros se adaptan (dicho de otro modo, se ajustan) con el objetivo de mejorar el rendimiento del algoritmo y conseguir mejores resultados. Se trata de un proceso iterativo que requiere el tiempo y la experiencia de un profesional de AA. Entre los distintos algoritmos o los modelos estadísticos se encuentran la Regresión lineal y la Regresión logística y otros modelos de aprendizaje automático incluyen Árboles de decisión, Bosques aleatorios y modelos de incrementación más recientes como LightGBM y XGBoost. Aunque LightGBM y XGBoost superan a la mayoría de los otros modelos en casi todos los datasets, resulta difícil predecir qué modelos funcionarán bien en un dataset determinado, por lo que debe probar todos los modelos para comparar su rendimiento antes de decidir el modelo que mejor se ajusta a los datos. Es decir, que los modelos se ajustan a los datos con los valores bajos de MSE, RMSE, MAE, MAPE, mientras que las puntuaciones altas de R2, Spearman, Pearson para los problemas de regresión y menos Logloss, y las puntuaciones altas de AUC, F1 a los problemas de clasificación.

    En la mayoría de los casos, combinar varios modelos en uno y tomar la salida de este modelo combinado supera el resultado de un único modelo. Este paso se denomina ensamblaje de modelos.

  4. Ajuste de hiperparámetros: aunque la mayoría de los pasos anteriores eran iterativos, el paso que suele resultar más difícil al entrenar modelos de aprendizaje automático es el ajuste de hiperparámetros.

    Los hiperparámetros se pueden considerar como indicadores que vienen con cada modelo. Los hiperparámetros que se utilizan para entrenar un modelo de Bosque aleatorio difieren de los utilizados para entrenar un modelo LightGBM. Conocer estos hiperparámetros le ayudará a comprender el modelo.

  5. Selección de modelos: el paso final del flujo de trabajo de AA es la evaluación del modelo, donde se valida que el algoritmo de AA entrenado y ajustado se generalizará bien para los datos en los que no se ajustó. A menudo, estos datos sin utilizar se denominan conjunto de pruebas o validación y se mantienen separados del resto de datos que se utilizan para entrenar el modelo. El objetivo de este paso final es garantizar que el algoritmo de AA produce una precisión predictiva aceptable en datos nuevos.

Al examinar todo el flujo de trabajo de AA, es evidente que existen distintos grados de aportación, toma de decisiones y elección humanas en cada paso.

  • ¿Se recopilaron los datos adecuados para abordar el problema? ¿Hay suficientes datos?
  • ¿Qué implica un valor atípico en el contexto de los datos?
  • Si se encuentra que faltan valores, ¿qué debería reemplazarlos?
  • ¿Qué entidades se deben incluir en el modelo de AA?
  • ¿Qué algoritmo de AA se debe utilizar?
  • ¿Cuál es un nivel aceptable de rendimiento para el modelo?
  • ¿Cuál es la mejor combinación de hiperparámetros para un modelo determinado?

Solo esta última decisión puede conllevar cientos o incluso miles de combinaciones de hiperparámetros que se pueden iterar. Agregue varios escenarios de ingeniería de entidades diferentes y el entrenamiento y ajuste de varios algoritmos de AA diferentes; todo el proceso comienza a ser ciertamente inmanejable e improductivo. Además, varios de los pasos del flujo de trabajo de AA requieren conocimientos técnicos expertos de técnicas de ciencia de datos, estadísticas y algoritmos de aprendizaje automático. Por ello, diseñar y ejecutar proyectos de AA puede llevar mucho tiempo, ser laborioso y costoso y, a menudo, depender mucho de científicos de datos y profesionales de AA formados.

En la última década, el aprendizaje automático ha experimentado un rápido crecimiento tanto en el rango de aplicaciones en las que se aplica como en la cantidad de nuevas investigaciones producidas sobre el mismo. Algunas de las fuerzas que más impulsan este crecimiento son la maduración de los propios métodos y algoritmos de AA, la generación y proliferación de enormes volúmenes de datos de los que aprenden los algoritmos, la abundancia de computación asequible para ejecutar los algoritmos y el creciente conocimiento entre las empresas de que los algoritmos de AA pueden abordar complejos problemas y estructuras de datos.

Muchas organizaciones desean usar AA para aprovechar sus datos y derivar nuevas perspectivas ejecutables a partir de este, pero existe un desequilibrio entre el número de posibles aplicaciones de AA y la cantidad de profesionales expertos de AA formados para utilizarlas. Como resultado, existe una creciente demanda de democratizar el AA en todas las organizaciones creando herramientas que hagan que el AA sea comúnmente accesible en toda la organización y que expertos de dominio y personas no expertas en AA pueden utilizarlo de inmediato.

Recientemente, el Aprendizaje automático automatizado (AutoML) se ha convertido en una forma de abordar la enorme demanda de AA dentro de las organizaciones en todos los niveles de experiencia y conocimientos. AutoML tiene por objetivo crear un único sistema para automatizar (es decir, eliminar las aportaciones humanas) en la mayor medida de lo posible del flujo de trabajo de AA, incluida la preparación de datos, la ingeniería de entidades, la selección de modelos, el ajuste de hiperparámetros y la evaluación del modelo. Al hacerlo, puede ser beneficioso para los usuarios que no sean expertos gracias a reducir su barrera de aportación al AA, pero también para los profesionales de AA formados eliminando algunos de los pasos más tediosos y lentos del flujo de trabajo de AA.

AutoML para usuarios no expertos en AA (analistas SIG, analistas de negocio o analistas de datos que son expertos de dominio). La ventaja clave de usar AutoML es que elimina algunos de los pasos del flujo de trabajo de AA que requieren la comprensión y los conocimientos expertos más técnicos. Los analistas que son expertos de dominio pueden definir su problema empresarial y recopilar los datos adecuados y, a continuación, dejar que el equipo aprenda a hacer el resto. No necesitan comprender en profundidad las técnicas de ciencia de datos para la limpieza de datos y la ingeniería de entidades, ni comprender la función de los algoritmos de AA y no necesitan dedicar tiempo a explorar los diferentes algoritmos y configuraciones de hiperparámetros. En su lugar, estos analistas pueden centrarse en la aplicación de sus conocimientos del dominio a una aplicación específica del dominio o problema empresarial, en lugar de en el propio flujo de trabajo de AA. Además, pueden ser menos dependientes de científicos de datos formados y de ingenieros de AA de su organización, ya que pueden crear y utilizar modelos avanzados por su cuenta, a menudo sin necesidad de experiencia de codificación.

AutoML para expertos en AA (científicos de datos o ingenieros de AA): AutoML también puede ser muy beneficioso para los expertos en AA; sin embargo, las razones pueden ser menos obvias. Para uno, los expertos en AA no tienen que dedicar mucho tiempo a ayudar a los expertos de dominio de su organización y, por tanto, pueden centrarse en su propio trabajo, trabajo con AA más avanzado. En lo que respecta a los proyectos de AA de los expertos en AA, AutoML puede servir para ahorrar una gran cantidad de tiempo y potenciar la productividad. Muchos de los lentos pasos del flujo de trabajo de AA como la limpieza de datos, la ingeniería de entidades, la selección de modelos y el ajuste de hiperparámetros, se pueden automatizar. El tiempo que se ahorra al automatizar muchos de estos pasos exploratorios y repetitivos se puede utilizar en tareas técnicas más avanzadas o tareas que requieren más aportación humana (por ejemplo, la colaboración con expertos de dominio, la comprensión del problema empresarial o la interpretación de los resultados de AA).

Además de los aspectos que ahorran tiempo, AutoML también puede ayudar a potenciar la productividad de los profesionales de AA, ya que elimina algunas de las opciones subjetivas y la experimentación implicadas en el flujo de trabajo de AA. Por ejemplo, un profesional de AA que aborde un nuevo proyecto puede tener la formación y los conocimientos expertos necesarios para guiarlo a la hora de crear nuevas entidades y decidir qué algoritmo podría ser el mejor para un problema concreto y qué hiperparámetros serían los más óptimos. Sin embargo, pueden pasar por alto la construcción de determinadas entidades nuevas o no probar todas las combinaciones posibles de hiperparámetros al llevar a cabo el flujo de trabajo de AA. Además, el profesional de AA puede sesgar el proceso de selección de entidades o la elección de un algoritmo porque prefiera un algoritmo de AA concreto en función de su trabajo anterior o su éxito en otras aplicaciones de AA que haya visto. En realidad, ningún algoritmo de AA funciona mejor en todos los datasets, algunos algoritmos de AA son más sensibles que otros a la selección de hiperparámetros y muchos problemas empresariales tienen distintos grados de complejidad y requisitos para la interpretación de los algoritmos de AA utilizados para resolverlos. AutoML puede ayudar a reducir parte de esta influencia humana aplicando muchos algoritmos de AA diferentes al mismo dataset y determinando después cuál de ellos funciona mejor.

Para el profesional de AA, AutoML también puede servir como punto de partida inicial o punto de referencia en un proyecto de AA. Pueden utilizarlo para desarrollar automáticamente un modelo base para un dataset, lo que les puede proporcionar un conjunto de percepciones preliminares sobre un problema concreto. A partir de ahí, pueden decidir agregar o eliminar entidades específicas del dataset de entrada o centrarse en un algoritmo de AA específico y ajustar sus hiperparámetros. En este sentido, AutoML puede ser visto como una forma de limitar el conjunto de opciones iniciales para un profesional de AA formado, de forma que puedan centrarse en mejorar el rendimiento del sistema de AA en general. En la práctica, este es un flujo de trabajo muy común, donde los expertos en AA desarrollarán un punto de referencia basado en datos mediante AutoML y, a continuación, aprovechar este punto de referencia incorporando sus conocimientos para perfeccionar los resultados.

Finalmente, democratizar el AA con AutoML dentro de una organización permite a los expertos de dominio centrar su atención en el problema empresarial y obtener resultados ejecutables, permite a más analistas crear mejores modelos y puede reducir el número de expertos en AA que la organización necesita contratar. También puede ayudar a potenciar la productividad de los expertos en AA y científicos de datos formados, lo que les permite concentrar sus conocimientos en el resto de diversas tareas en las que más se les necesita.

En resumen, la herramienta Entrenar con AutoML requiere estos pasos para identificar el mejor modelo:

  1. Se intentan utilizar algoritmos simples, como un Árbol de decisión (un árbol simple con una profundidad máxima de 4) y modelos lineales. Ayuda a obtener un examen rápido de los datos y de los resultados esperados.
  2. Los modelos que se seleccionan al inicio de AutoML (paso 1 anterior) se entrenan con parámetros predeterminados y, en este paso, los datos se ejecutan por medio de un conjunto de algoritmos mucho más complejos, utilizando solo los hiperparámetros predeterminados. Se prueba un ajuste de modelo para cada algoritmo y para todos los algoritmos disponibles. Los algoritmos disponibles son Lineal, Bosque aleatorio, XGBoost, LightGBM, Árbol de decisión y Árbol extra.
  3. Realice una búsqueda aleatoria sobre el espacio de hiperparámetros de cada algoritmo individual para encontrar el conjunto óptimo de hiperparámetros.
  4. Construya entidades nuevas utilizando las llamadas "entidades de oro" (golden features). Determine cuáles de las nuevas entidades tienen capacidades predictivas y agréguelas al dataset original. En este paso, se utiliza el mejor conjunto de hiperparámetros identificados en el paso anterior.
  5. Este es el paso de selección de entidades. Utilice el conjunto óptimo de hiperparámetros determinado en el paso 4 para entrenar un modelo de mejor rendimiento para cada algoritmo y, a continuación, determine las entidades menos importantes y elimínelas.
  6. Se ensamblan los resultados de los mejores modelos entrenados hasta el momento.
  7. Los modelos se apilan y se combinan los resultados de los mejores modelos (incluidos los apilados).

Ensamblaje de modelos: un ensamblaje es un conjunto de modelos cuyas predicciones se combinan por promedios o votos ponderados.

Ensamblaje de modelos

Las estrategias más comunes que se utilizan para ensamblar son bagging (Bosque aleatorio es un ejemplo clásico de bagging) y refuerzo (XGBoost es un ejemplo de refuerzo), que combina las salidas de los modelos que pertenecen a los mismos algoritmos. Las técnicas recientes, como las mencionadas en Ensemble Selection from Libraries of Models por Caruana et. al, combinan diversos modelos. Siga estos pasos para crear un ensamblaje:

  1. Comience con el ensamblaje vacío.
  2. Agregue el modelo a la biblioteca que maximiza el rendimiento del ensamblaje a la métrica del error en un conjunto de validación.
  3. Repita el paso anterior para un número fijo de iteraciones o hasta que se hayan utilizado todos los modelos.
  4. Devuelva el ensamblaje del conjunto anidado de ensamblajes que tiene un rendimiento máximo en el conjunto de validación.

Apilado de modelos: el apilado de modelos también implica combinar los resultados de varios modelos y obtener el resultado de esta combinación.

Apilado de modelos

Aunque los planteamientos de ensamblaje combinan los resultados de varios modelos proporcionando ponderaciones diferentes a las salidas, el apilado utiliza los resultados de cada uno de los modelos base como entidades y los agrega a un modelo de mayor nivel, un metamodelo. La salida del metamodelo de mayor nivel se utiliza como la salida final.

Pila de ensamblajes: para mejorar el rendimiento, se crean pilas de modelos y sus salidas se combinan para formar una pila de ensamblajes.

Interpretar los informes de salida

La herramienta Entrenar con AutoML puede generar un informe HTML como salida.

La página principal del informe muestra la tabla de clasificación. La misma información también está disponible en la ventana de salida de la herramienta.

Tabla de clasificación

La tabla de clasificación muestra los modelos evaluados y su valor métrico. En este caso del problema de regresión, el modelo con el menor RMSE se considera el mejor modelo (en este caso, el modelo de ensamblaje). Por el contrario, será diferente (por ejemplo, Logloss) para problemas de clasificación.

AutoML Performance Boxplot compara la métrica de evaluación de diferentes modelos con la métrica de evaluación (RMSE) en el eje y y los modelos en el eje X, como se muestra a continuación. El diagrama de caja muestra que el mejor modelo es el modelo de ensamblaje que tiene el RMSE más bajo.

Rendimiento de AutoML de todos los modelos

Este gráfico de rendimiento de AutoML muestra cómo la métrica de evaluación del modelo de mejor rendimiento, que en este caso es el modelo de ensamblaje, varía en diferentes iteraciones. El gráfico de iteraciones lo ayuda a comprender el nivel de consistencia del modelo en diferentes ejecuciones del modelo.

Rendimiento de AutoML del mejor modelo
Correlación de modelos de Spearman

A continuación, la correlación de Spearman se genera para todos los modelos que se evaluaron, y los modelos que están más estrechamente relacionados se muestran en tonos azules más oscuros. Por ejemplo, las salidas de LightGBM y XGBoost son las más relacionadas (según lo esperado, ya que ambas son algoritmos de refuerzo). La salida de LightGBM se parece a la salida de Bosque aleatorio en comparación con la salida de Árboles extra.

Desde la tabla de clasificación, al hacer clic en el vínculo de cualquiera de los modelos de la columna Name se le dirige a una página que muestra los hiperparámetros que se finalizaron para el entrenamiento del modelo después de completar el ajuste de hiperparámetros. En este ejemplo, el árbol de decisión se entrenó con un valor max_depth de 3.

Hiperparámetros del modelo

La misma página también muestra otras métricas aparte de la que se utilizó para la evaluación. En el ejemplo que aparece a continuación, que era una tarea de regresión, puede ver las métricas MAE, MSE, R2 y MAPE y la métrica RMSE, que se utilizó para la evaluación del modelo.

Métricas

También puede ver el gráfico de dispersión de salidas reales y predichas (aquí para una muestra de 5.000 puntos de datos).

Gráfico de dispersión observado frente al predicho: model1

Gráfico de dispersión observado frente al predicho: model2

Puede utilizar este gráfico para determinar el rendimiento del modelo. Las cifras anteriores muestran la comparación de los gráficos de dispersión de dos modelos obtenidos a partir del informe. El segundo modelo tiene un mejor rendimiento que el primero, donde los valores predichos y observados divergen más.

Por último, para poder explicar mejor los modelos, también se ha incluido en el informe la importancia de cada variable en el modelo final (similar a la importancia de las entidades en sklearn). A diferencia de sklearn, este gráfico también se puede generar para modelos de sklearn que no sean de árbol. Shapley Additive Explanations (SHAP) también ofrece esta capacidad de explicación del modelo para modelos no basados en árboles.

SHAP es un enfoque de teoría de juegos para explicar el resultado de cualquier modelo de aprendizaje automático. Conecta la asignación óptima de créditos con explicaciones locales utilizando los valores clásicos de Shapley de la teoría de juegos y sus extensiones relacionadas. Puede encontrar más detalles sobre SHAP y su implementación aquí. La salida SHAP solo está disponible con la opción Básica.

En el gráfico siguiente, puede visualizar el impacto global de cada variable en el dataset de vivienda en el modelo entrenado. Este demuestra que la entidad sqft_living es la que más influye en el modelo y la más importante, seguida del número de bathrooms y bedrooms al predecir los precios de las viviendas.

Gráfico de importancia de entidades SHAP

Con la opción Básica, también tiene la opción de ver el Informe de análisis de datos exploratorio automático (informe EDA), que imprime estadísticas resumidas para la variable objetivo y los predictores utilizados en el entrenamiento del modelo. El siguiente es un informe EDA de muestra para una variable denominada altclip.tif:

Estadísticas de resumen para una variable de muestra

Distribución de la variable

Referencias

Caruana, Rich et al. "Ensemble Selection from Libraries of Models." Proceedings of the 21st International Conference on Machine Learning. Banff, Canadá (2004). http://www.cs.cornell.edu/~alexn/papers/shotgun.icml04.revised.rev2.pdf.