Jaa kautta


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.

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ä microsoft fabric -kokeiluversion maksuttomaan .

  • Kirjaudu sisään Microsoft Fabric .

  • Vaihda Fabriciin aloitussivun vasemmassa alakulmassa olevan käyttökokemuksen vaihtajan avulla.

    Näyttökuva käyttökokemuksen vaihtajavalikosta, jossa näkyy, missä datatiede valitaan.

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.

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.

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: