Executar um experimento de ML automatizado
Para executar um experimento de AutoML (machine learning automatizado), você pode configurar e enviar o trabalho com o SDK do Python.
Os algoritmos usados pelo AutoML dependerão da tarefa especificada. Quando você quiser treinar um modelo de classificação, o AutoML escolherá entre uma lista de algoritmos de classificação:
- Regressão Logística
- GBM (computador de gradient boosting) leve
- Árvore de Decisão
- Floresta aleatória
- Naive Bayes
- SVM (computador de vetor de suporte) linear
- XGBoost
- E outros...
Dica
Para ver uma lista completa de algoritmos com suporte, explore a visão geral dos algoritmos com suporte.
Restringir a seleção de algoritmo
Por padrão, o AutoML fará uma seleção aleatória entre o intervalo completo de algoritmos para a tarefa especificada. Você pode optar por bloquear a seleção de algoritmos individuais, o que poderá ser útil se souber que os dados não são adequados a um tipo específico de algoritmo. Talvez você também queira bloquear determinados algoritmos se precisar cumprir uma política que restrinja o tipo de algoritmos de aprendizado de máquina que pode usar em sua organização.
Configurar um experimento de AutoML
Ao usar o SDK do Python (v2) para configurar um experimento ou trabalho de AutoML, configure-o usando a classe automl
. Para classificação, você usará a função automl.classification
, conforme mostrado no seguinte exemplo:
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 workspace do Azure Machine Learning.
Especificar a métrica primária
Uma das configurações mais importantes que você precisará especificar é a primary_metric. Essa é a métrica de desempenho de destino primária 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 quiser 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
Encontre uma lista completa de métricas primárias e suas definições em avaliar os resultados do experimento de machine learning automatizado.
Definir os limites
Treinar modelos de machine learning custará computação. Para minimizar os custos e o tempo gasto com 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 de AutoML:
timeout_minutes
: número de minutos após o qual o experimento de AutoML completo é encerrado.trial_timeout_minutes
: número máximo de minutos que uma avaliação pode levar.max_trials
: número máximo de avaliações ou de modelos que serão treinados.enable_early_termination
: se deseja encerrar o experimento se a pontuação não estiver melhorando no 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 tantas avaliações paralelas quantos forem seus nós. Portanto, o número máximo de avaliações paralelas está relacionado ao número máximo de nós que o cluster de computação tem. Se você quiser definir o número máximo de avaliações paralelas como menor que o número máximo de nós, poderá usar max_concurrent_trials
.
Definir as propriedades de treinamento
O AutoML experimentará várias combinações de definição de recursos e algoritmos para treinar um modelo de machine learning. Se você já souber que determinados algoritmos não são adequados para seus dados, poderá 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 de AutoML
Você pode enviar um trabalho de 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 trabalho de AutoML no Estúdio do Azure Machine Learning. Para obter um link direto para o trabalho de AutoML executando o seguinte código:
aml_url = returned_job.studio_url
print("Monitor your job at", aml_url)