Executar um experimento de aprendizado de máquina automatizado
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:
- Logistic Regression
- Light Gradient Boosting Machine (GBM)
- Árvore de Decisões
- Random Forest
- Naive Bayes
- Linear Support Vector Machine (SVM)
- XGBoost
- E outros...
Gorjeta
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 automl
classe. Para classificação, você usará a automl.classification
função 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
)
Nota
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 definições mais importantes a 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 suporta 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)
Gorjeta
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 o qual o experimento AutoML completo é encerrado.trial_timeout_minutes
: Número máximo de minutos que uma tentativa 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 testes paralelos 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)