Opetusohjelma, osa 4: Suorita erän pisteytys ja tallenna ennusteet Lakehouse-järjestelmään
Tässä opetusohjelmassa opit tuomaan rekisteröidyn LightGBMClassifier-mallin, joka on harjoitettu osassa 3 käyttämällä Microsoft Fabric MLflow -mallirekisteriä, ja suorittamaan eräennusteita lakehousesta ladatulle testitietojoukolle.
Microsoft Fabricin avulla voit operationalisoida koneoppimismalleja skaalattavalla FUNKTIOlla nimeltä PREDICT, joka tukee erän pisteytystä missä tahansa laskentamoduulissa. Eräennusteita voi luoda suoraan Microsoft Fabric -muistikirjasta tai mallin kohdesivulta. Lue lisätietoja PREDICT-arvosta.
Jotta voit luoda eräennusteita testitietojoukosta, käytät harjoitetun LightGBM-mallin versiota 1, joka osoitti kaikkien koulutettujen koneoppimismallien parhaan suorituskyvyn. Lataat testitietojoukon spark DataFrame -kehykseen ja luot MLFlowTransformer-objektin eräennusteiden luomiseksi. Voit sitten käynnistää PREDICT-funktion käyttämällä jotakin seuraavista kolmesta tavasta:
- Muuntajan ohjelmointirajapinta SynapseML:stä
- Spark SQL -ohjelmointirajapinta
- Käyttäjän määrittämä PySpark-funktio (UDF)
Edellytykset
Hanki Microsoft Fabric -tilaus. Voit myös rekisteröityä ilmaiseen Microsoft Fabric -kokeiluversioon.
Siirry Synapse Data Science -käyttökokemukseen aloitussivun vasemmassa reunassa olevan käyttökokemuksen vaihtajan avulla.
Tämä opetusohjelmasarjan osa 4/5. Suorita tämä opetusohjelma suorittamalla ensin:
- Osa 1: Tietojen käyttö Microsoft Fabric -lakehousessa Apache Sparkin avulla.
- Osa 2: Tutustu ja visualisoi tietoja Microsoft Fabric -muistikirjojen avulla, niin saat lisätietoja tiedoista.
- Osa 3: Koneoppimismallien harjoittaminen ja rekisteröiminen.
Seuraa mukana muistikirjassa
4-predict.ipynb on muistikirja, joka on tämän opetusohjelman mukana.
Jos haluat avata tämän opetusohjelman liitteenä olevan muistikirjan, tuo muistikirja työtilaasi noudattamalla ohjeita kohdassa Järjestelmän valmisteleminen datatieteen opetusohjelmia varten.
Jos haluat kopioida ja liittää koodin tältä sivulta, voit luoda uuden muistikirjan.
Muista liittää lakehouse muistikirjaan ennen kuin aloitat koodin suorittamisen.
Tärkeä
Liitä sama lakehouse, jota käytit sarjan muissa osissa.
Testitietojen lataaminen
Lataa testitiedot, jotka tallensit osassa 3.
df_test = spark.read.format("delta").load("Tables/df_test")
display(df_test)
ENNUSTA muuntajan ohjelmointirajapinnan avulla
SynapseML:n muuntajan ohjelmointirajapinnan käyttämiseksi sinun on ensin luotava MLFlowTransformer-objekti.
MlFlowTransformer-objektin alustaminen
MLFlowTransformer-objekti on mlFlow-mallin paketoija, jonka rekisteröit osassa 3. Sen avulla voit luoda eräennusteita tietylle DataFrame-kehykselle. MLFlowTransformer-objektin alustamiseksi sinun on annettava seuraavat parametrit:
- DataFrame-testin sarakkeet, jotka tarvitset syötteenä malliin (tässä tapauksessa tarvitset ne kaikki).
- Uuden tulostarakkeen nimi (tässä tapauksessa ennusteet).
- Oikea mallin nimi ja malliversio ennusteiden luomiseksi (tässä tapauksessa
lgbm_sm
ja versio 1).
from synapse.ml.predict import MLFlowTransformer
model = MLFlowTransformer(
inputCols=list(df_test.columns),
outputCol='predictions',
modelName='lgbm_sm',
modelVersion=1
)
Nyt kun sinulla on MLFlowTransformer-objekti, voit käyttää sitä eräennusteiden luomiseen.
import pandas
predictions = model.transform(df_test)
display(predictions)
ENNUSTA Spark SQL -ohjelmointirajapinnan avulla
Seuraava koodi käynnistää PREDICT-funktion Spark SQL -ohjelmointirajapinnalla.
from pyspark.ml.feature import SQLTransformer
# Substitute "model_name", "model_version", and "features" below with values for your own model name, model version, and feature columns
model_name = 'lgbm_sm'
model_version = 1
features = df_test.columns
sqlt = SQLTransformer().setStatement(
f"SELECT PREDICT('{model_name}/{model_version}', {','.join(features)}) as predictions FROM __THIS__")
# Substitute "X_test" below with your own test dataset
display(sqlt.transform(df_test))
PREDICT käyttäjän määrittämällä funktiolla (UDF)
Seuraava koodi käynnistää PREDICT-funktion PySpark UDF:llä.
from pyspark.sql.functions import col, pandas_udf, udf, lit
# Substitute "model" and "features" below with values for your own model name and feature columns
my_udf = model.to_udf()
features = df_test.columns
display(df_test.withColumn("predictions", my_udf(*[col(f) for f in features])))
Huomaa, että voit myös luoda PREDICT-koodin mallin kohdesivulta. Lue lisätietoja PREDICT-arvosta.
Kirjoita mallin ennustustulokset Lakehouse-järjestelmään
Kun olet luonut eräennusteita, kirjoita mallin ennustetulokset takaisin Lakehouse-järjestelmään.
# Save predictions to lakehouse to be used for generating a Power BI report
table_name = "customer_churn_test_predictions"
predictions.write.format('delta').mode("overwrite").save(f"Tables/{table_name}")
print(f"Spark DataFrame saved to delta table: {table_name}")
Seuraava vaihe
Jatka kohtaan: