Jaa


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

Tämä opetusohjelmasarjan osa 4/5. Suorita tämä opetusohjelma suorittamalla ensin:

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: