Pular para o conteúdo principal

Treine modelos de regressão com a API AutoML Python

Este exemplo de Notebook mostra como ensinar um modelo de regressão no Databricks usando a API AutoML Python . Usando o dataset de habitação da Califórnia, você chama automl.regress() para prever o valor mediano da casa e, em seguida, usa a melhor inferência de tentativa para execução em um conjunto de teste reservado.

Requisitos

Databricks Runtime para Machine Learning 8.3 ou superior.

datasetsobre habitação na Califórnia

Este dataset foi derivado do censo dos EUA de 1990, utilizando uma linha por grupo de quarteirões censitários. A variável alvo é o valor mediano das casas nos distritos da Califórnia.

Python
import sklearn
input_pdf = sklearn.datasets.fetch_california_housing(as_frame=True)
display(input_pdf.frame)

divisão entre ensinar e testar

Python
from sklearn.model_selection import train_test_split

train_pdf, test_pdf = train_test_split(input_pdf.frame, test_size=0.01, random_state=42)
display(train_pdf)

treinamento

O comando a seguir inicia uma execução AutoML . Você deve fornecer a coluna que o modelo deve prever no argumento target_col .
Quando a execução for concluída, você poderá acessar o link para o Notebook de teste para examinar o código de treinamento. Este Caderno também inclui um recurso gráfico de importância.

Python
from databricks import automl
summary = automl.regress(train_pdf, target_col="MedHouseVal", timeout_minutes=30)

O comando a seguir exibe informações sobre a saída AutoML .

Python
help(summary)

Iterar sobre o modelo

  • Explore o caderno e os experimentos mencionados acima.
  • Se os critérios para o melhor Notebook de teste parecerem adequados, passe diretamente para a seção de inferência.
  • Se você deseja aprimorar o modelo gerado pelo melhor teste:
    • Acesse o Notebook com a melhor versão de avaliação e clone-o.
    • Edite o Notebook conforme necessário para aprimorar o modelo. Por exemplo, você pode experimentar diferentes hiperparâmetros.
    • Quando estiver satisfeito com o modelo, anote o URI onde o artefato do modelo treinado está armazenado. Atribua este URI à variável model_uri no Cmd 12.

Inferência

Você pode usar o modelo treinado pelo AutoML para fazer previsões em novos dados. Os exemplos abaixo demonstram como fazer previsões em dados em DataFrames Pandas ou registrar o modelo como uma UDF Spark para previsão em DataFrames Spark .

DataFramePandas

Python
model_uri = summary.best_trial.model_path
# model_uri = "<model-uri-from-generated-notebook>"
Python
import mlflow

# Prepare test dataset
y_test = test_pdf["MedHouseVal"]
X_test = test_pdf.drop("MedHouseVal", axis=1)

# Run inference using the best model
model = mlflow.pyfunc.load_model(model_uri)
predictions = model.predict(X_test)
test_pdf["MedHouseVal_predicted"] = predictions
display(test_pdf)

DataFrame do Spark

Python
# Prepare the test dataset
test_df = spark.createDataFrame(test_pdf)
predict_udf = mlflow.pyfunc.spark_udf(spark, model_uri=model_uri)
display(test_df.withColumn("MedHouseVal_predicted", predict_udf()))

Teste

Utilize o modelo final para fazer previsões no conjunto de teste reservado, a fim de estimar o desempenho do modelo em um ambiente de produção.

Python
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Prepare the dataset
y_pred = test_pdf["MedHouseVal_predicted"]
test = pd.DataFrame({"Predicted":y_pred,"Actual":y_test})
test = test.reset_index()
test = test.drop(["index"], axis=1)

# plot graphs
fig= plt.figure(figsize=(16,8))
plt.plot(test[:50])
plt.legend(["Actual", "Predicted"])
sns.jointplot(x="Actual", y="Predicted", data=test, kind="reg");

registrar e implantar o modelo

Você pode registrar e implantar um modelo treinado pelo AutoML como qualquer outro modelo no MLflow Model Registry. Veja os modelos MLflow de log, carregamento e registro.

Solução de problemas: No module named pandas.core.indexes.numeric

Ao servir um modelo treinado com AutoML com servir modelo, você pode ver o erro No module named pandas.core.indexes.numeric. Isso acontece quando a versão pandas usada pelo AutoML difere daquela no ambiente endpoint do modelo de serviço. Para resolver:

  1. Baixe o script add-pandas-dependency.py. O script edita requirements.txt e conda.yaml para os modelos registrados no pin pandas==1.5.3.
  2. Edite o script para incluir o run_id da execução MLflow onde o modelo foi registrado.
  3. Registre novamente o modelo.
  4. Sirva a nova versão do modelo.

Exemplo de caderno

Treine modelos de regressão com a API AutoML Python

Abrir notebook em uma nova aba

Próximas etapas

Referência da API Python do AutoML.