Treinar modelos de classificação com AutoML Python API
Este artigo demonstra como treinar um modelo com AutoML usando a API Python AutoML. Consulte Referência da API do AutoML Python para obter mais detalhes.
A API fornece funções para iniciar a classificação, regressão e previsão de execuções do AutoML. Cada chamada de função treina um conjunto de modelos e gera um bloco de anotações de avaliação para cada modelo.
Consulte Requisitos para experimentos AutoML.
Configurar um experimento usando a API AutoML
As etapas a seguir geralmente descrevem como configurar um experimento AutoML usando a API:
Crie um bloco de anotações e anexe-o a um cluster que executa o Databricks Runtime ML.
Identifique qual tabela você deseja usar de sua fonte de dados existente ou carregue um arquivo de dados para o DBFS e crie uma tabela.
Para iniciar uma execução do AutoML, use a
automl.regress()
função ,automl.classify()
ouautoml.forecast()
e passe a tabela, juntamente com quaisquer outros parâmetros de treinamento. Para ver todas as funções e parâmetros, consulte Referência da API do AutoML Python.Nota
A
automl.forecast()
função só está disponível para previsão em computação clássica.Por exemplo:
# Regression example summary = automl.regress(dataset=train_pdf, target_col="col_to_predict") # Classification example summary = automl.classification(dataset=train_pdf, target_col="col_to_predict") # Forecasting example summary = automl.forecast(dataset=train_pdf, target_col="col_to_predic", time_col="date_col", horizon=horizon, frequency="d", output_database="default")
Quando a execução do AutoML começa, uma URL de experimento MLflow aparece no console. Use este URL para monitorar o progresso da execução. Atualize o experimento MLflow para ver as avaliações à medida que são concluídas.
Após a conclusão da execução do AutoML:
- Use os links no resumo de saída para navegar até o experimento MLflow ou o bloco de anotações que gerou os melhores resultados.
- Use o link para o bloco de anotações de exploração de dados para obter informações sobre os dados passados para o AutoML. Você também pode anexar este bloco de anotações ao mesmo cluster e executá-lo novamente para reproduzir os resultados ou fazer análises de dados adicionais.
- Use o objeto de resumo retornado da chamada AutoML para explorar mais detalhes sobre as avaliações ou para carregar um modelo treinado por uma determinada avaliação. Saiba mais sobre o objeto AutoMLSummary.
- Clone qualquer bloco de anotações gerado a partir das avaliações e execute-o novamente anexando-o ao mesmo cluster para reproduzir os resultados. Você também pode fazer as edições necessárias, executá-las novamente para treinar modelos adicionais e registrá-las no mesmo experimento.
Importar um bloco de notas
Para importar um bloco de anotações salvo como um artefato MLflow, use a API do databricks.automl.import_notebook
Python. Para obter mais informações, consulte Importar bloco de anotações
Registrar e implantar um modelo
Você pode registrar e implantar seu modelo treinado pelo AutoML como qualquer modelo registrado no registro do modelo MLflow; consulte Registrar, carregar, registrar e implantar modelos MLflow.
Nenhum módulo nomeado pandas.core.indexes.numeric
Ao servir um modelo construído usando AutoML com Model Serving, você pode obter o erro: No module named pandas.core.indexes.numeric
.
Isso ocorre devido a uma versão incompatível pandas
entre o AutoML e o modelo que serve o ambiente de ponto final. Para resolver o erro:
- Faça o download do script add-pandas-dependency.py.
O script edita o
requirements.txt
econda.yaml
para seu modelo registrado para incluir a versão de dependência apropriadapandas
:pandas==1.5.3
. - Modifique o script para incluir o
run_id
da execução do MLflow onde o modelo foi registrado. - Registre novamente o modelo no registro do modelo MLflow.
- Tente servir a nova versão do modelo MLflow.
Exemplo de bloco de notas
O bloco de anotações a seguir mostra como fazer a classificação com o AutoML.
Bloco de notas de exemplo de classificação AutoML
Próximos passos
Referência da API Python do AutoML.