Visualizações de treinamento (visualização)
Uma avaliação de hiperparâmetro ou avaliação de AutoML procura os parâmetros ideais para um modelo de aprendizado de máquina. Cada teste consiste em várias execuções, onde cada execução avalia uma combinação de parâmetros específica. Os usuários podem monitorar essas execuções usando itens de experimento de ML no Fabric.
O flaml.visualization
módulo oferece funções para plotar e comparar as execuções no FLAML. Os usuários podem usar o Plotly para interagir com seus gráficos de experimento AutoML. Para usar essas funções, os usuários precisam inserir seu objeto otimizado flaml.AutoML
ou flaml.tune.tune.ExperimentAnalysis
atualizado.
Este artigo ensina como usar o módulo para analisar e explorar os resultados da flaml.visualization
avaliação do AutoML. Você também pode seguir as mesmas etapas para sua avaliação de hiperparâmetros.
Importante
Este recurso está em pré-visualização.
Criar uma versão de avaliação do AutoML
O AutoML oferece um conjunto de processos automatizados que podem identificar o melhor pipeline de aprendizado de máquina para seu conjunto de dados, tornando todo o processo de modelagem mais simples e muitas vezes mais preciso. Em essência, ele economiza o trabalho de ajustar manualmente diferentes modelos e hiperparâmetros.
Na célula de código abaixo, iremos:
- Carregue o conjunto de dados Iris.
- Divida os dados em conjuntos de treinamento e teste.
- Inicie uma avaliação do AutoML para se adequar aos nossos dados de treinamento.
- Explore os resultados da nossa avaliação do AutoML com as visualizações do
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)
Visualize os resultados do experimento
Depois de executar uma avaliação do AutoML, você precisa visualizar os resultados para analisar o desempenho dos modelos e como eles se comportaram. Nesta parte da nossa documentação, mostramos-lhe como utilizar os utilitários incorporados na biblioteca FLAML para este fim.
Importar módulo de visualização
Para acessar esses utilitários de visualização, executamos o seguinte comando de importação:
import flaml.visualization as fviz
Histórico de otimização
Um gráfico de histórico de otimização normalmente tem o número de tentativas/iterações no eixo x e uma métrica de desempenho (como precisão, RMSE, etc.) no eixo y. À medida que o número de ensaios aumenta, você verá um gráfico de linha ou dispersão indicando o desempenho de cada ensaio.
fig = fviz.plot_optimization_history(automl)
# or
fig = fviz.plot(automl, "optimization_history")
fig.show()
Aqui está o gráfico resultante:
Importância do recurso
Um gráfico de importância de feição é uma poderosa ferramenta de visualização que permite entender o significado de diferentes recursos de entrada na determinação das previsões de um modelo.
fig = fviz.plot_feature_importance(automl)
# or
fig = fviz.plot(automl, "feature_importance")
fig.show()
Aqui está o gráfico resultante:
Gráfico de coordenadas paralelas
Um gráfico de coordenadas paralelas é uma ferramenta de visualização que representa dados multidimensionais desenhando várias linhas verticais (eixos) correspondentes a variáveis ou hiperparâmetros, com pontos de dados plotados como linhas conectadas entre esses eixos. No contexto de um AutoML ou experimento de ajuste, ele é fundamental para visualizar e analisar o desempenho de diferentes combinações de hiperparâmetros. Ao traçar os caminhos de configurações de alto desempenho, pode-se discernir padrões ou tendências nas escolhas de hiperparâmetros e suas interações. Este gráfico ajuda a entender quais combinações levam ao desempenho ideal, identificando áreas potenciais para exploração adicional e identificando quaisquer compensações entre diferentes hiperparâmetros.
Este utilitário usa os seguintes outros argumentos:
learner
: Especifique o aluno que pretende estudar na experiência. Este parâmetro só é aplicável para resultados de experimentos AutoML. Ao deixar isso em branco, o sistema escolhe o melhor aluno em todo o experimento.params
: Uma lista para especificar qual hiperparâmetro exibir. Ao deixar isso em branco, o sistema exibe todos os hiperparâmetros disponíveis.
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()
Aqui está o gráfico resultante:
Enredo de contorno
Um gráfico de contorno visualiza dados tridimensionais em duas dimensões, onde os eixos x e y representam dois hiperparâmetros, e as linhas de contorno ou contornos preenchidos representam os níveis de uma métrica de desempenho (por exemplo, precisão ou perda). No contexto de um AutoML ou experimento de ajuste, um gráfico de contorno é benéfico para entender a relação entre dois hiperparâmetros e seu efeito combinado no desempenho do modelo.
Ao examinar a densidade e o posicionamento das linhas de contorno, pode-se identificar regiões do espaço de hiperparâmetros onde o desempenho é otimizado, determinar possíveis compensações entre hiperparâmetros e obter insights sobre suas interações. Essa visualização ajuda a refinar o espaço de pesquisa e o processo de ajuste.
Este utilitário também usa os seguintes argumentos:
learner
: Especifique o aluno que pretende estudar na experiência. Este parâmetro só é aplicável para resultados de experimentos AutoML. Ao deixar isso em branco, o sistema escolhe o melhor aluno em todo o experimento.params
: Uma lista para especificar qual hiperparâmetro exibir. Ao deixar isso em branco, o sistema exibe todos os hiperparâmetros disponíveis.
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()
Aqui está o gráfico resultante:
Função de distribuição empírica
Um gráfico de função de distribuição empírica (EDF), muitas vezes visualizado como uma função de passo, representa a probabilidade cumulativa de pontos de dados serem menores ou iguais a um determinado valor. Dentro de um AutoML ou experimento de ajuste, um gráfico EDF pode ser empregado para visualizar a distribuição dos desempenhos do modelo em diferentes configurações de hiperparâmetros.
Ao observar a inclinação ou planicidade da curva em vários pontos, pode-se entender a concentração de bons ou maus desempenhos do modelo, respectivamente. Esta visualização oferece informações sobre a eficácia geral do processo de ajuste, destacando se a maioria das configurações tentadas está produzindo resultados satisfatórios ou se apenas algumas configurações se destacam.
Nota
Para experimentos AutoML, vários modelos serão aplicados durante o treinamento. As tentativas de cada aluno são representadas como uma série de otimização. Para experimentos de ajuste de hiperparâmetros, haverá apenas um único aluno que será avaliado. No entanto, você pode fornecer experimentos de ajuste adicionais para ver as tendências em cada aluno.
fig = fviz.plot_edf(automl)
# or
fig = fviz.plot(automl, "edf")
fig.show()
Aqui está o gráfico resultante:
Gráfico da linha do tempo
Um gráfico de linha do tempo, geralmente representado como um gráfico de Gantt ou uma sequência de barras, visualiza o início, a duração e a conclusão de tarefas ao longo do tempo. No contexto de um AutoML ou experimento de ajuste, um gráfico de linha do tempo pode mostrar a progressão de várias avaliações de modelo e suas respetivas durações, plotadas em função do tempo. Ao observar este gráfico, os usuários podem compreender a eficiência do processo de busca, identificar possíveis gargalos ou períodos ociosos e entender a dinâmica temporal de diferentes avaliações de hiperparâmetros.
fig = fviz.plot_timeline(automl)
# or
fig = fviz.plot(automl, "timeline")
fig.show()
Aqui está o gráfico resultante:
Gráfico de fatias
Plotar a relação de parâmetros como gráfico de fatia em um estudo.
Este utilitário também usa os seguintes argumentos:
learner
: Especifique o aluno que pretende estudar na experiência. Este parâmetro só é aplicável para resultados de experimentos AutoML. Ao deixar isso em branco, o sistema escolhe o melhor aluno em todo o experimento.params
: Uma lista para especificar qual hiperparâmetro exibir. Ao deixar isso em branco, o sistema exibe todos os hiperparâmetros disponíveis.
fig = fviz.plot_slice(automl, learner="sgd")
# or
fig = fviz.plot(automl, "slice", learner="sgd")
fig.show()
Aqui está o gráfico resultante:
Importância do hiperparâmetro
Um gráfico de importância de hiperparâmetros classifica visualmente os hiperparâmetros com base em sua influência no desempenho do modelo em um experimento de AutoML ou ajuste. Exibido normalmente como um gráfico de barras, ele quantifica o impacto de cada hiperparâmetro na métrica de destino. Ao examinar este gráfico, os profissionais podem discernir quais hiperparâmetros são fundamentais na determinação dos resultados do modelo e quais têm efeito mínimo.
Este utilitário também usa os seguintes argumentos:
learner
: Especifique o aluno que pretende estudar na experiência. Este parâmetro só é aplicável para resultados de experimentos AutoML. Ao deixar isso em branco, o sistema escolhe o melhor aluno em todo o experimento.params
: Uma lista para especificar qual hiperparâmetro exibir. Ao deixar isso em branco, o sistema exibe todos os hiperparâmetros disponíveis.
fig = fviz.plot_param_importance(automl, learner="sgd")
# or
fig = fviz.plot(automl, "param_importance", learner="sgd")
fig.show()
Aqui está o gráfico resultante: