Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento ukázkový poznámkový blok ukazuje, jak trénovat regresní model v Databricks pomocí rozhraní API Python AutoML. Pomocí datové sady bydlení v Kalifornii zavoláte automl.regress() k predikci mediánu hodnoty domu a pak použijete nejlepší pokus k provedení odvozování na odděleném testovacím souboru.
Requirements
Databricks Runtime pro Machine Learning 8.3 nebo novější
Datová sada bydlení v Kalifornii
Tato datová sada byla odvozena ze sčítání lidu USA z roku 1990 pomocí jednoho řádku na skupinu bloků sčítání lidu. Cílová proměnná je mediánem hodnoty domu pro oblasti Kalifornie.
import sklearn
input_pdf = sklearn.datasets.fetch_california_housing(as_frame=True)
display(input_pdf.frame)
Rozdělení trénování/testování
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)
Školení
Následující příkaz spustí spuštění AutoML. Je nutné zadat sloupec, který by model měl v argumentu předpovědět target_col .
Po dokončení spuštění můžete pomocí odkazu na nejlepší zkušební poznámkový blok prozkoumat trénovací kód. Tento poznámkový blok obsahuje také diagram důležitosti funkcí.
from databricks import automl
summary = automl.regress(train_pdf, target_col="MedHouseVal", timeout_minutes=30)
Následující příkaz zobrazí informace o výstupu AutoML.
help(summary)
Iterujte na modelu
- Prozkoumejte poznámkové bloky a experimenty uvedené výše.
- Pokud metriky pro nejlepší zkušební poznámkový blok vypadají dobře, přeskočte přímo do oddílu odvozování.
- Pokud chcete vylepšit model vygenerovaný nejlepší zkušební verzí:
- Přejděte do poznámkového bloku s nejlepší zkušební verzí a naklonujte ho.
- Podle potřeby upravte poznámkový blok a vylepšete model. Můžete například vyzkoušet různé hyperparametry.
- Až budete s modelem spokojení, poznamenejte si identifikátor URI, ve kterém je uložen artefakt natrénovaného modelu. Přiřaďte tento identifikátor URI proměnné
model_uriv Cmd 12.
Odvozování
Pomocí modelu, který autoML vytrénuje, můžete vytvářet předpovědi na nová data. Níže uvedené příklady ukazují, jak provádět předpovědi dat v datových rámcích pandas nebo registrovat model jako UDF Sparku pro predikce datových rámců Sparku.
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)
Datový rámec Sparku
# 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
Pomocí finálního modelu proveďte předpovědi na vyřazené testovací sadě a odhadněte, jak by model fungoval v produkčním prostředí.
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");
Registrace a nasazení modelu
Model natrénovaný autoML můžete zaregistrovat a nasadit stejně jako jakýkoli jiný model v registru modelů MLflow. Viz Zaznamenání, načtení a registrace modelů MLflow.
Řešení potíží: No module named pandas.core.indexes.numeric
Při poskytování modelu vytrénovaného autoML pomocí služby Model Serving se může zobrazit chyba No module named pandas.core.indexes.numeric. K tomu dochází v případě, že se pandas verze používaná službou AutoML liší od verze v prostředí koncového bodu obsluhy modelu. Řešení je následující:
-
Stáhněte si skript add-pandas-dependency.py. Skript upraví
requirements.txtaconda.yamlpro protokolovaný model, aby připnulpandas==1.5.3. - Upravte skript tak, aby zahrnoval
run_idběh MLflow, ve kterém byl model zaznamenán. - Znovu zaregistrujte model.
- Obsluha nové verze modelu
Příklad notebooku
Trénujte regresní modely pomocí
Další kroky
Referenční informace k rozhraní PYTHON API pro AutoML