Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Contoh notebook ini memperlihatkan cara melatih model klasifikasi pada Databricks menggunakan AutoML Python API. Dengan menggunakan himpunan data Pendapatan Sensus UCI, Anda memanggil automl.classify() untuk memprediksi apakah seseorang mendapatkan lebih dari $50K per tahun, lalu menggunakan uji coba terbaik untuk menjalankan inferensi pada kedua DataFrame Pandas dan Spark.
Requirements
Databricks Runtime untuk Pembelajaran Mesin.
Himpunan data pendapatan sensus
Himpunan data ini berisi data sensus dari database sensus 1994. Setiap baris mewakili sekelompok individu. Tujuannya adalah untuk menentukan apakah grup memiliki pendapatan lebih dari 50k setahun atau tidak. Klasifikasi ini direpresentasikan sebagai string di kolom pendapatan dengan nilai <=50K atau >50k.
from pyspark.sql.types import DoubleType, StringType, StructType, StructField
schema = StructType([
StructField("age", DoubleType(), False),
StructField("workclass", StringType(), False),
StructField("fnlwgt", DoubleType(), False),
StructField("education", StringType(), False),
StructField("education_num", DoubleType(), False),
StructField("marital_status", StringType(), False),
StructField("occupation", StringType(), False),
StructField("relationship", StringType(), False),
StructField("race", StringType(), False),
StructField("sex", StringType(), False),
StructField("capital_gain", DoubleType(), False),
StructField("capital_loss", DoubleType(), False),
StructField("hours_per_week", DoubleType(), False),
StructField("native_country", StringType(), False),
StructField("income", StringType(), False)
])
input_df = spark.read.format("csv").schema(schema).load("/databricks-datasets/adult/adult.data")
Pembagian data latih/uji
train_df, test_df = input_df.randomSplit([0.99, 0.01], seed=42)
display(train_df)
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.classify(train_df, target_col="income", timeout_minutes=30)
Perintah berikut menampilkan informasi tentang output AutoML.
help(summary)
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.
model_uri = summary.best_trial.model_path
# model_uri = "<model-uri-from-generated-notebook>"
pandas DataFrame
import mlflow
# Prepare test dataset
test_pdf = test_df.toPandas()
y_test = test_pdf["income"]
X_test = test_pdf.drop("income", axis=1)
# Run inference using the best model
model = mlflow.pyfunc.load_model(model_uri)
predictions = model.predict(X_test)
test_pdf["income_predicted"] = predictions
display(test_pdf)
Spark DataFrame
predict_udf = mlflow.pyfunc.spark_udf(spark, model_uri=model_uri, result_type="string")
display(test_df.withColumn("income_predicted", predict_udf()))
Test
Gunakan model akhir untuk membuat prediksi pada set uji tahanan untuk memperkirakan bagaimana performa model dalam lingkungan produksi. Diagram menunjukkan perincian antara prediksi yang benar dan salah.
import sklearn.metrics
model = mlflow.sklearn.load_model(model_uri)
sklearn.metrics.plot_confusion_matrix(model, X_test, y_test)
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:
- Unduh skrip add-pandas-dependency.py. Untuk menyematkan
pandas==1.5.3, skrip mengeditrequirements.txtdanconda.yamlpada model yang telah dicatat. - Edit skrip untuk menyertakan
run_iddari run MLflow saat model dicatat. - Daftarkan ulang model.
- Layani versi model baru.
Contoh buku catatan
Melatih model klasifikasi dengan Api Python AutoML
Langkah berikutnya
Referensi API Python AutoML.