Executar um experimento de aprendizado de máquina automatizado

Concluído

Para executar um experimento de aprendizado de máquina automatizado (AutoML), você pode configurar e enviar o trabalho com o SDK do Python.

Os algoritmos que o AutoML usa dependerão da tarefa que você especificar. Quando você quiser treinar um modelo de classificação, o AutoML escolherá em uma lista de algoritmos de classificação:

  • Regressão Logística
  • Máquina de aumento de gradiente de luz (GBM)
  • Árvore de Decisão
  • Floresta aleatória
  • Bayes ingênuo
  • Máquina vetorial de suporte linear (SVM)
  • XGBoost
  • E outros...

Dica

Para obter uma lista completa dos algoritmos suportados, explore a visão geral dos algoritmos suportados.

Restringir a seleção de algoritmos

Por padrão, o AutoML selecionará aleatoriamente entre todos os algoritmos para a tarefa especificada. Você pode optar por bloquear a seleção de algoritmos individuais; o que pode ser útil se você souber que seus dados não são adequados para um determinado tipo de algoritmo. Você também pode querer bloquear determinados algoritmos se tiver que cumprir uma política que restrinja o tipo de algoritmos de aprendizado de máquina que você pode usar em sua organização.

Configurar um experimento AutoML

Quando você usa o Python SDK (v2) para configurar um experimento ou trabalho AutoML, você configura o experimento usando a classe automl. Para classificação, você usará a função automl.classification, conforme mostrado no exemplo a seguir:

from azure.ai.ml import automl

# configure the classification job
classification_job = automl.classification(
    compute="aml-cluster",
    experiment_name="auto-ml-class-dev",
    training_data=my_training_data_input,
    target_column_name="Diabetic",
    primary_metric="accuracy",
    n_cross_validations=5,
    enable_model_explainability=True
)

Observação

O AutoML precisa de um ativo de dados MLTable como entrada. No exemplo, my_training_data_input refere-se a um ativo de dados MLTable criado no espaço de trabalho do Azure Machine Learning.

Especificar a métrica primária

Uma das configurações mais importantes que você deve especificar é a primary_metric. A métrica primária é a métrica de desempenho alvo para a qual o modelo ideal será determinado. O Azure Machine Learning dá suporte a um conjunto de métricas nomeadas para cada tipo de tarefa.

Para recuperar a lista de métricas disponíveis quando você deseja treinar um modelo de classificação, você pode usar a função ClassificationPrimaryMetrics conforme mostrado aqui:

from azure.ai.ml.automl import ClassificationPrimaryMetrics
 
list(ClassificationPrimaryMetrics)

Dica

Você pode encontrar uma lista completa de métricas primárias e suas definições em avaliar os resultados do experimento de aprendizado de máquina automatizado.

Definir os limites

Treinar modelos de aprendizado de máquina custará computação. Para minimizar os custos e o tempo gasto em treinamento, você pode definir limites para um experimento ou trabalho de AutoML usando set_limits().

Há várias opções para definir limites para um experimento AutoML:

  • timeout_minutes: Número de minutos após os quais o experimento AutoML completo é encerrado.
  • trial_timeout_minutes: Número máximo de minutos que uma avaliação pode demorar.
  • max_trials: Número máximo de ensaios, ou modelos que serão treinados.
  • enable_early_termination: Se deve terminar a experiência se a pontuação não estiver a melhorar a curto prazo.
classification_job.set_limits(
    timeout_minutes=60, 
    trial_timeout_minutes=20, 
    max_trials=5,
    enable_early_termination=True,
)

Para economizar tempo, você também pode executar várias avaliações em paralelo. Ao usar um cluster de computação, você pode ter tantas avaliações paralelas quanto nós. O número máximo de testes paralelos está, portanto, relacionado ao número máximo de nós que seu cluster de computação tem. Se você quiser definir o número máximo de tentativas paralelas para ser menor do que o número máximo de nós, você pode usar max_concurrent_trials.

Definir as propriedades de treinamento

O AutoML tentará várias combinações de featurização e algoritmos para treinar um modelo de aprendizado de máquina. Se já sabe que determinados algoritmos não são adequados para os seus dados, pode excluir (ou incluir) um subconjunto dos algoritmos disponíveis.

Você também pode escolher se deseja permitir que o AutoML use modelos de conjunto.

Enviar um experimento AutoML

Você pode enviar um trabalho AutoML com o seguinte código:

# submit the AutoML job
returned_job = ml_client.jobs.create_or_update(
    classification_job
) 

Você pode monitorar as execuções de tarefas do AutoML no estúdio do Azure Machine Learning. Para obter um link direto para o trabalho AutoML executando o seguinte código:

aml_url = returned_job.studio_url
print("Monitor your job at", aml_url)