Aracılığıyla paylaş


Öğretici Bölüm 4: Toplu puanlama gerçekleştirme ve tahminleri göl evinde kaydetme

Bu öğreticide, Microsoft Fabric MLflow model kayıt defteri kullanılarak 3. bölümde eğitilen kayıtlı LightGBMClassifier modelini içeri aktarmayı ve bir göl evinden yüklenen test veri kümesinde toplu tahminler gerçekleştirmeyi öğreneceksiniz.

Microsoft Fabric, herhangi bir işlem altyapısında toplu puanlama desteği sunan PREDICT adlı ölçeklenebilir bir işlevle makine öğrenmesi modellerini kullanıma sunmanızı sağlar. Toplu tahminleri doğrudan bir Microsoft Fabric not defterinden veya belirli bir modelin öğe sayfasından oluşturabilirsiniz. PREDICT hakkında bilgi edinin.

Test veri kümesinde toplu tahminler oluşturmak için eğitilen tüm makine öğrenmesi modelleri arasında en iyi performansı gösteren eğitilmiş LightGBM modelinin 1. sürümünü kullanacaksınız. Test veri kümesini bir spark DataFrame'e yükleyip toplu tahminler oluşturmak için bir MLFlowTransformer nesnesi oluşturacaksınız. Ardından, aşağıdaki üç yoldan birini kullanarak PREDICT işlevini çağırabilirsiniz:

  • SynapseML'den Transformatör API'si
  • Spark SQL API'si
  • PySpark kullanıcı tanımlı işlevi (UDF)

Önkoşullar

Öğretici serisinde bu bölüm 4 /5. Bu öğreticiyi tamamlamak için önce şunları tamamlayın:

Not defterinde birlikte izleyin

4-predict.ipynb , bu öğreticiye eşlik eden not defteridir.

Bu öğreticide eşlik eden not defterini açmak için, not defterini çalışma alanınıza aktarmak üzere Sisteminizi veri bilimi öğreticilerine hazırlama başlığındaki yönergeleri izleyin.

Bu sayfadaki kodu kopyalayıp yapıştırmayı tercih ederseniz, yeni bir not defteri oluşturabilirsiniz.

Kod çalıştırmaya başlamadan önce not defterine bir göl evi eklediğinizden emin olun.

Önemli

Bu serinin diğer bölümlerine kullandığınız göl evi ekleyin.

Test verilerini yükleme

Bölüm 3'te kaydettiğiniz test verilerini yükleyin.

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

Transformer API ile PREDICT

SynapseML'den Transformer API'sini kullanmak için önce bir MLFlowTransformer nesnesi oluşturmanız gerekir.

MLFlowTransformer nesnesinin örneğini oluşturma

MLFlowTransformer nesnesi, Bölüm 3'te kaydettiğiniz MLFlow modelinin etrafındaki bir sarmalayıcıdır. Belirli bir DataFrame üzerinde toplu tahminler oluşturmanıza olanak tanır. MLFlowTransformer nesnesinin örneğini görüntülemek için aşağıdaki parametreleri sağlamanız gerekir:

  • Test DataFrame'den modele giriş olarak ihtiyacınız olan sütunlar (bu durumda bunların tümüne ihtiyacınız olacaktır).
  • Yeni çıkış sütunu için bir ad (bu örnekte tahminler).
  • Tahminleri oluşturmak için doğru model adı ve model sürümü (bu örnekte lgbm_sm ve sürüm 1).
from synapse.ml.predict import MLFlowTransformer

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

ARTıK MLFlowTransformer nesnesine sahip olduğunuz için toplu tahminler oluşturmak için bunu kullanabilirsiniz.

import pandas

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

Spark SQL API'siyle PREDICT

Aşağıdaki kod Spark SQL API'siyle PREDICT işlevini çağırır.

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

Kullanıcı tanımlı işlev (UDF) ile PREDICT

Aşağıdaki kod, PySpark UDF ile PREDICT işlevini çağırır.

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

Modelin öğe sayfasından PREDICT kodu da oluşturabileceğinizi unutmayın. PREDICT hakkında bilgi edinin.

Lakehouse'a model tahmini sonuçları yazma

Toplu tahminler oluşturduktan sonra model tahmini sonuçlarını lakehouse'a geri yazı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}")

Sonraki adım

Devam et: