Compartir vía


Visualizaciones de entrenamiento (versión preliminar)

Una prueba de hiperparámetros o una prueba de AutoML busca los parámetros óptimos para un modelo de aprendizaje automático. Cada prueba consta de varias ejecuciones, donde cada ejecución evalúa una combinación de parámetros específica. Los usuarios pueden supervisar estas ejecuciones mediante elementos de experimento de ML en Fabric.

El módulo flaml.visualization ofrece funciones para trazar y comparar las ejecuciones en FLAML. Los usuarios pueden usar Plotly para interactuar con sus trazados de experimentos de AutoML. Para usar estas funciones, los usuarios deben introducir su objeto flaml.AutoML o flaml.tune.tune.ExperimentAnalysis optimizado.

En este artículo se explica cómo usar el módulo flaml.visualization para analizar y explorar los resultados de la prueba de AutoML. También puede seguir los mismos pasos para la prueba de hiperparámetros.

Importante

Esta característica se encuentra en versión preliminar.

Creación de una prueba de AutoML

AutoML ofrece un conjunto de procesos automatizados que pueden identificar la mejor canalización de aprendizaje automático para el conjunto de datos, lo que hace que todo el proceso de modelado sea más sencillo y a menudo más preciso. En esencia, le ahorra el problema de ajustar a mano diferentes modelos e hiperparámetros.

En la celda de código siguiente, haremos lo siguiente:

  1. Cargar el conjunto de datos Iris.
  2. Dividir los datos en conjuntos de entrenamiento y de prueba.
  3. Iniciar una prueba de AutoML para ajustarse a los datos de entrenamiento.
  4. Explorar los resultados de nuestra prueba de AutoML con las visualizaciones de flaml.visualization.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from flaml import AutoML

# Load the Iris data and split it into train and test sets
x, y = load_iris(return_X_y=True, as_frame=True)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=7654321)

# Create an AutoML instance and set the parameters
automl = AutoML()
automl_settings = {
    "time_budget": 10, # Time limit in seconds
    "task": "classification", # Type of machine learning task
    "log_file_name": "aml_iris.log", # Name of the log file
    "metric": "accuracy", # Evaluation metric
    "log_type": "all", # Level of logging
}
# Fit the AutoML instance on the training data
automl.fit(X_train=x_train, y_train=y_train, **automl_settings)

Visualizar los resultados del experimento

Una vez que ejecute una versión de prueba de AutoML, debe visualizar los resultados para analizar el rendimiento de los modelos y cómo se comportan. En esta parte de nuestra documentación, le mostramos cómo usar las utilidades integradas en la biblioteca FLAML para este propósito.

Importación del módulo de visualización

Para acceder a estas utilidades de visualización, ejecutamos el siguiente comando de importación:

import flaml.visualization as fviz

Historial de optimización

Normalmente, un gráfico del historial de optimización tiene el número de pruebas o iteraciones en el eje X y una métrica de rendimiento (como precisión, RMSE, etc.) en el eje Y. A medida que aumenta el número de pruebas, verá un gráfico de línea o dispersión que indica el rendimiento de cada prueba.

fig = fviz.plot_optimization_history(automl)
# or
fig = fviz.plot(automl, "optimization_history")
fig.show()

Este es el trazado resultante:

Gráfico del trazado del historial de optimización.

Importancia de característica

Un gráfico de importancia de características es una potente herramienta de visualización que permite comprender la importancia de diferentes características de entrada para determinar las predicciones de un modelo.

fig = fviz.plot_feature_importance(automl)
# or
fig = fviz.plot(automl, "feature_importance")
fig.show()

Este es el trazado resultante:

Gráfico de trazado de importancia de características.

Trazado de coordenadas paralelas

Un trazado de coordenadas paralelas es una herramienta de visualización que representa datos multidimensionales dibujando varias líneas verticales (ejes) correspondientes a variables o hiperparámetros, con puntos de datos trazados como líneas conectadas a través de estos ejes. En el contexto de un experimento de ajuste o AutoML, es fundamental para visualizar y analizar el rendimiento de diferentes combinaciones de hiperparámetros. Mediante el seguimiento de las rutas de configuración de alto rendimiento, se pueden distinguir patrones o tendencias en las opciones de hiperparámetros y sus interacciones. Este trazado ayuda a comprender qué combinaciones conducen a un rendimiento óptimo, identificando las áreas potenciales para una mayor exploración e identificando cualquier inconveniente entre diferentes hiperparámetros.

Este método toma los argumentos siguientes:

  • learner: especifique el aprendiz que quiere estudiar en el experimento. Este parámetro solo es aplicable a los resultados del experimento de AutoML. Al dejar este espacio en blanco, el sistema elige el mejor aprendiz de todo el experimento.

  • params: una lista para especificar qué hiperparámetros se van a mostrar. Al dejar esto en blanco, el sistema muestra todos los hiperparámetros disponibles.

fig = fviz.plot_parallel_coordinate(automl, learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
# or
fig = fviz.plot(automl, "parallel_coordinate", learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
fig.show()

Este es el trazado resultante:

Gráfico de trazado de coordenadas paralelas.

Trazado de contorno

Un trazado de contorno visualiza datos tridimensionales en dos dimensiones, donde los ejes x e y representan dos hiperparámetros y las líneas de contorno o contornos rellenos representan niveles de una métrica de rendimiento (por ejemplo, precisión o pérdida). En el contexto de un experimento de ajuste o AutoML, un trazado de contorno ayuda a comprender la relación entre dos hiperparámetros y su efecto combinado en el rendimiento del modelo.

Al examinar la densidad y el posicionamiento de las líneas de contorno, se pueden identificar regiones del espacio de hiperparámetros donde se optimiza el rendimiento, determinar posibles inconvenientes entre hiperparámetros y obtener información sobre sus interacciones. Esta visualización ayuda a mejorar el espacio de búsqueda y el proceso de optimización.

Este método toma los argumentos siguientes:

  • learner: especifique el aprendiz que quiere estudiar en el experimento. Este parámetro solo es aplicable a los resultados del experimento de AutoML. Al dejar este espacio en blanco, el sistema elige el mejor aprendiz de todo el experimento.

  • params: una lista para especificar qué hiperparámetros se van a mostrar. Al dejar esto en blanco, el sistema muestra todos los hiperparámetros disponibles.

fig = fviz.plot_contour(automl, learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
# or
fig = fviz.plot(automl, "contour", learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
fig.show()

Este es el trazado resultante:

Gráfico de trazado de contorno.

Función de distribución empírica

Un trazado de función de distribución empírica (EDF), que a menudo se visualiza como una función de un paso, representa la probabilidad acumulativa de que los puntos de datos sean menores o iguales que un valor determinado. Dentro de un experimento de ajuste o AutoML, se puede emplear un trazado de EDF para visualizar la distribución de rendimientos del modelo en diferentes configuraciones de hiperparámetros.

Al observar la inclinación o la aplanación de la curva en varios puntos, se puede comprender la concentración de rendimientos de modelos buenos o deficientes, respectivamente. Esta visualización ofrece información sobre la eficacia general del proceso de optimización, resaltando si la mayoría de las configuraciones intentadas producen resultados satisfactorios o si solo se destacan algunas configuraciones.

Nota:

En el caso de los experimentos de AutoML, se aplicarán varios modelos durante el entrenamiento. Las pruebas de cada aprendiz se representan como una serie de optimización. En el caso de los experimentos de ajuste de hiperparámetros, solo habrá un único aprendiz que se evalúe. Sin embargo, puede proporcionar experimentos de ajuste adicionales para ver las tendencias en cada aprendiz.

fig = fviz.plot_edf(automl)
# or
fig = fviz.plot(automl, "edf")
fig.show()

Este es el trazado resultante:

Gráfico del trazado de la función de distribución empírica.

Trazado de escala de tiempo

Un trazado de escala de tiempo, que a menudo se representa como un diagrama de Gantt o una secuencia de barras, visualiza el inicio, la duración y la finalización de las tareas a lo largo del tiempo. En el contexto de un experimento de ajuste o AutoML, un trazado de escala de tiempo puede mostrar la progresión de varias evaluaciones del modelo y sus respectivas duraciones, trazadas con el tiempo. Al observar este trazado, los usuarios pueden comprender la eficacia del proceso de búsqueda, identificar posibles cuellos de botella o períodos de inactividad, y comprender la dinámica temporal de diferentes evaluaciones de hiperparámetros.

fig = fviz.plot_timeline(automl)
# or
fig = fviz.plot(automl, "timeline")
fig.show()

Este es el trazado resultante:

Gráfico de trazado de escala de tiempo.

Trazado de segmentos

Trazar la relación de parámetros como gráfico de segmentos en un estudio.

Este método toma los argumentos siguientes:

  • learner: especifique el aprendiz que quiere estudiar en el experimento. Este parámetro solo es aplicable a los resultados del experimento de AutoML. Al dejar este espacio en blanco, el sistema elige el mejor aprendiz de todo el experimento.

  • params: una lista para especificar qué hiperparámetros se van a mostrar. Al dejar esto en blanco, el sistema muestra todos los hiperparámetros disponibles.

fig = fviz.plot_slice(automl, learner="sgd")
# or
fig = fviz.plot(automl, "slice", learner="sgd")
fig.show()

Este es el trazado resultante:

Gráfico de trazado de segmentos.

Importancia de hiperparámetros

Un trazado de importancia de hiperparámetros clasifica visualmente los hiperparámetros en función de su influencia en el rendimiento del modelo en un experimento de ajuste o AutoML. Se muestra normalmente como un gráfico de barras y cuantifica el impacto de cada hiperparámetro en la métrica de destino. Al examinar este trazado, los profesionales pueden distinguir qué hiperparámetros son fundamentales para determinar los resultados del modelo y cuáles tienen un efecto mínimo.

Este método toma los argumentos siguientes:

  • learner: especifique el aprendiz que quiere estudiar en el experimento. Este parámetro solo es aplicable a los resultados del experimento de AutoML. Al dejar este espacio en blanco, el sistema elige el mejor aprendiz de todo el experimento.

  • params: una lista para especificar qué hiperparámetros se van a mostrar. Al dejar esto en blanco, el sistema muestra todos los hiperparámetros disponibles.

fig = fviz.plot_param_importance(automl, learner="sgd")
# or
fig = fviz.plot(automl, "param_importance", learner="sgd")
fig.show()

Este es el trazado resultante:

Gráfico de trazado de importancia de hiperparámetros.