Melatih model regresi dengan AUTOML Python API

Contoh notebook ini memperlihatkan cara melatih model regresi pada Databricks menggunakan AutoML Python API. Dengan menggunakan himpunan data perumahan California, Anda memanggil automl.regress() untuk memprediksi nilai rumah tengah, lalu menggunakan uji coba terbaik untuk menjalankan inferensi pada set pengujian yang disisihkan.

Persyaratan

Databricks Runtime untuk Pembelajaran Mesin 8.3 atau lebih tinggi.

Himpunan data perumahan California

Himpunan data ini berasal dari sensus AS 1990, menggunakan satu baris per grup blok sensus. Variabel target adalah nilai rumah median untuk distrik California.

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

Pembagian data latih/uji

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)

Pelatihan

Perintah berikut memulai eksekusi AutoML. Anda harus menyediakan kolom yang harus diprediksi model dalam target_col argumen.
Setelah proses selesai, Anda bisa mengikuti tautan ke buku catatan percobaan terbaik untuk memeriksa kode pelatihan. Notebook ini juga menyertakan plot kepentingan fitur.

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

Perintah berikut menampilkan informasi tentang output AutoML.

help(summary)

Lakukan iterasi pada model

  • Jelajahi notebook dan eksperimen yang ditautkan di atas.
  • Jika metrik untuk buku catatan percobaan terbaik terlihat bagus, lewati langsung ke bagian inferensi.
  • Jika Anda ingin meningkatkan model yang dihasilkan oleh uji coba terbaik:
    • Buka buku catatan dengan percobaan terbaik dan kloning.
    • Edit buku catatan seperlunya untuk meningkatkan model. Misalnya, Anda dapat mencoba hiperparameter yang berbeda.
    • Setelah Anda merasa puas dengan modelnya, catatlah URI di mana artefak model terlatih tersebut dicatatkan. Tetapkan URI ini ke model_uri variabel di Cmd 12.

Inferensi

Anda dapat menggunakan model yang dilatih oleh AutoML untuk membuat prediksi pada data baru. Contoh di bawah ini menunjukkan cara membuat prediksi pada data di Pandas DataFrames, atau mendaftarkan model sebagai Spark UDF untuk prediksi pada Spark DataFrames.

pandas DataFrame

model_uri = summary.best_trial.model_path
# model_uri = "<model-uri-from-generated-notebook>"
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)

Spark DataFrame

# 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()))

Test

Gunakan model akhir untuk membuat prediksi pada set uji tahanan untuk memperkirakan bagaimana performa model dalam lingkungan produksi.

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");

Mendaftarkan dan menyebarkan model

Anda dapat mendaftar dan menyebarkan model yang dilatih oleh AutoML seperti model lain di MLflow Model Registry. Lihat Mencatat, memuat, dan mendaftarkan model MLflow.

Pemecahan masalah: No module named pandas.core.indexes.numeric

Ketika menyajikan model yang telah dilatih dengan AutoML menggunakan Mosaic AI Model Serving, Anda mungkin melihat kesalahan No module named pandas.core.indexes.numeric. Ini terjadi ketika versi pandas yang digunakan oleh AutoML berbeda dari versi dalam lingkungan penyajian model di titik akhir. Untuk menyelesaikan:

  1. Unduh skrip add-pandas-dependency.py. Untuk menyematkan pandas==1.5.3, skrip mengedit requirements.txt dan conda.yaml pada model yang telah dicatat.
  2. Edit skrip untuk menyertakan run_id dari run MLflow saat model dicatat.
  3. Daftarkan ulang model.
  4. Layani versi model baru.

Contoh buku catatan

Melatih model regresi dengan

Ambil buku catatan

Langkah berikutnya

Referensi API Python AutoML.