Oktatóanyag 4. rész: Kötegelt pontozás végrehajtása és előrejelzések mentése tóházba

Ebben az oktatóanyagban megtanulhatja importálni a 3. részben betanított regisztrált LightGBMClassifier modellt a Microsoft Fabric MLflow modellregisztrációs adatbázisával, és kötegelt előrejelzéseket végezhet egy tóházból betöltött tesztadatkészleten.

A Microsoft Fabric lehetővé teszi a gépi tanulási modellek üzembe helyezése a PREDICT nevű skálázható függvénnyel, amely támogatja a kötegelt pontozást bármely számítási motorban. Kötegelt előrejelzéseket közvetlenül egy Microsoft Fabric-jegyzetfüzetből vagy egy adott modell elemlapjáról hozhat létre. További információ a PREDICT-ről.

Ha kötegelt előrejelzéseket szeretne létrehozni a tesztadatkészleten, a betanított LightGBM-modell 1. verzióját fogja használni, amely az összes betanított gépi tanulási modell közül a legjobb teljesítményt mutatta. A tesztadatkészletet betölti egy spark DataFrame-be, és létrehoz egy MLFlowTransformer objektumot a kötegelt előrejelzések létrehozásához. Ezután az alábbi három módszer egyikével hívhatja meg a PREDICT függvényt:

  • Transformer API a SynapseML-ből
  • Spark SQL API
  • PySpark felhasználó által definiált függvény (UDF)

Előfeltételek

  • Microsoft Fabric-előfizetés lekérése. Vagy regisztráljon egy ingyenes Microsoft Fabric-próbaverzióra.

  • Jelentkezzen be a Microsoft Fabricbe.

  • A kezdőlap bal oldalán található élménykapcsolóval válthat a Synapse Adattudomány felületre.

    Screenshot of the experience switcher menu, showing where to select Data Science.

Ez a 4/5. rész az oktatóanyag-sorozatban. Az oktatóanyag elvégzéséhez először végezze el a következőket:

Követés a jegyzetfüzetben

A 4-predict.ipynb az oktatóanyagot kísérő jegyzetfüzet.

Az oktatóanyaghoz mellékelt jegyzetfüzet megnyitásához kövesse a Rendszer előkészítése adatelemzési oktatóanyagokhoz című témakör utasításait, és importálja a jegyzetfüzetet a munkaterületre.

Ha inkább erről a lapról másolja és illessze be a kódot, létrehozhat egy új jegyzetfüzetet.

A kód futtatása előtt mindenképpen csatoljon egy lakehouse-t a jegyzetfüzethez .

Fontos

Csatolja a sorozat többi részében használt tóházat.

A tesztadatok betöltése

Töltse be a 3. részben mentett tesztadatokat.

df_test = spark.read.format("delta").load("Tables/df_test")
display(df_test)

PREDICT a Transformer API-val

A SynapseML Transformer API-jának használatához először létre kell hoznia egy MLFlowTransformer-objektumot.

MLFlowTransformer objektum példányosítása

Az MLFlowTransformer objektum egy burkoló a 3. részben regisztrált MLFlow-modell körül. Lehetővé teszi, hogy kötegelt előrejelzéseket hozzon létre egy adott DataFrame-en. Az MLFlowTransformer objektum példányosításához a következő paramétereket kell megadnia:

  • A teszt DataFrame azon oszlopai, amelyekre a modell bemeneteként szüksége van (ebben az esetben az összesre szüksége lesz).
  • Az új kimeneti oszlop neve (ebben az esetben előrejelzések).
  • A megfelelő modellnév és modellverzió az előrejelzések létrehozásához (ebben az esetben lgbm_sm és az 1. verzióban).
from synapse.ml.predict import MLFlowTransformer

model = MLFlowTransformer(
    inputCols=list(df_test.columns),
    outputCol='predictions',
    modelName='lgbm_sm',
    modelVersion=1
)

Most, hogy már rendelkezik az MLFlowTransformer objektummal, kötegelt előrejelzéseket hozhat létre vele.

import pandas

predictions = model.transform(df_test)
display(predictions)

PREDICT a Spark SQL API-val

Az alábbi kód meghívja a PREDICT függvényt a Spark SQL API-val.

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 felhasználó által definiált függvénnyel (UDF)

Az alábbi kód meghívja a PREDICT függvényt egy PySpark UDF használatával.

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])))

Vegye figyelembe, hogy a PREDICT-kódot a modell elemlapjáról is létrehozhatja. További információ a PREDICT-ről.

Modell előrejelzési eredményeinek írása a lakehouse-ba

Miután létrehozott kötegelt előrejelzéseket, írja vissza a modell előrejelzési eredményeit a lakehouse-ba.

# 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}")

Következő lépés

Folytassa a következőt: