Selvstudium del 4: Udfør batchscore, og gem forudsigelser i et lakehouse
I dette selvstudium lærer du at importere den registrerede LightGBMClassifier-model, der blev oplært i del 3, ved hjælp af Microsoft Fabric MLflow-modelregistreringsdatabasen og udføre batchforudsigelser på et testdatasæt, der er indlæst fra et lakehouse.
Microsoft Fabric giver dig mulighed for at operationalisere modeller til maskinel indlæring med en skalerbar funktion kaldet PREDICT, som understøtter batchscore i ethvert beregningsprogram. Du kan generere batchforudsigelser direkte fra en Microsoft Fabric-notesbog eller fra en given models elementside. Få mere at vide om PREDICT.
Hvis du vil generere batchforudsigelser for testdatasættet, skal du bruge version 1 af den oplærte LightGBM-model, der viste den bedste ydeevne blandt alle oplærte modeller til maskinel indlæring. Du skal indlæse testdatasættet i en spark DataFrame og oprette et MLFlowTransformer-objekt for at generere batchforudsigelser. Du kan derefter aktivere funktionen PREDICT på en af følgende tre måder:
- Transformer-API fra SynapseML
- Spark SQL API
- Brugerdefineret pySpark-funktion (UDF)
Forudsætninger
Få et Microsoft Fabric-abonnement. Du kan også tilmelde dig en gratis Microsoft Fabric-prøveversion.
Log på Microsoft Fabric.
Brug oplevelsesskifteren nederst til venstre på startsiden til at skifte til Fabric.
Denne del 4 af 5 i selvstudieserien. Hvis du vil fuldføre dette selvstudium, skal du først fuldføre:
- . del 1: Indfødning af data i et Microsoft Fabric lakehouse ved hjælp af Apache Spark.
- del 2: Udforsk og visualiser data ved hjælp af Microsoft Fabric-notesbøger, for at få mere at vide om dataene.
- . del 3: Oplær og registrer modeller til maskinel indlæring.
Følg med i notesbogen
4-predict.ipynb er den notesbog, der følger med dette selvstudium.
Hvis du vil åbne den medfølgende notesbog til dette selvstudium, skal du følge vejledningen i Forbered dit system til selvstudier om datavidenskab importere notesbogen til dit arbejdsområde.
Hvis du hellere vil kopiere og indsætte koden fra denne side, kan du oprette en ny notesbog.
Sørg for at vedhæfte et lakehouse til notesbogen, før du begynder at køre kode.
Vigtig
Vedhæft det samme lakehouse, du brugte i de andre dele af denne serie.
Indlæs testdataene
Indlæs de testdata, du gemte i del 3.
df_test = spark.read.format("delta").load("Tables/df_test")
display(df_test)
FORUDSIG med Transformer-API'en
Hvis du vil bruge Transformer-API'en fra SynapseML, skal du først oprette et MLFlowTransformer-objekt.
Instantier MLFlowTransformer-objekt
OBJEKTET MLFlowTransformer er en ombrydning omkring den MLFlow-model, du registrerede i del 3. Det giver dig mulighed for at generere batchforudsigelser på en given DataFrame. Hvis du vil instantiere MLFlowTransformer-objektet, skal du angive følgende parametre:
- Kolonnerne fra den testdataramme, du har brug for som input til modellen (i dette tilfælde skal du bruge dem alle).
- Et navn til den nye outputkolonne (i dette tilfælde forudsigelser).
- Det korrekte modelnavn og den korrekte modelversion til generering af forudsigelserne (i dette tilfælde
lgbm_sm
og version 1).
from synapse.ml.predict import MLFlowTransformer
model = MLFlowTransformer(
inputCols=list(df_test.columns),
outputCol='predictions',
modelName='lgbm_sm',
modelVersion=1
)
Nu, hvor du har MLFlowTransformer-objektet, kan du bruge det til at generere batchforudsigelser.
import pandas
predictions = model.transform(df_test)
display(predictions)
FORUDSIG med Spark SQL-API'en
Følgende kode aktiverer funktionen PREDICT med Spark SQL-API'en.
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 med en brugerdefineret funktion (UDF)
Følgende kode aktiverer funktionen PREDICT med en PySpark UDF.
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])))
Bemærk, at du også kan generere PREDICT-kode fra en models elementside. Få mere at vide om PREDICT.
Skriv resultater for modelforudsigelse til lakehouse
Når du har genereret batchforudsigelser, skal du skrive resultaterne af modelforudsigelsen tilbage til lakehouse.
# 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}")
Næste trin
Fortsæt til: