Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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. PREDICThakkı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
bir Microsoft Fabric aboneliği alın. Ya da ücretsiz Microsoft Fabricdeneme sürümüne kaydolun.
Oturum açın Microsoft Fabric.
Giriş sayfanızın sol alt tarafındaki deneyim değiştiriciyi kullanarak Fabric'e geçin.
Bu, öğretici serisinin 5 bölümünden 4.'südür. Bu öğreticiyi tamamlamak için önce şunları tamamlayın:
- Bölüm 1: Apache Sparkkullanarak bir Microsoft Fabric lakehouse'a veri yüklemek.
- Bölüm 2: Veriler hakkında daha fazla bilgi edinmek için Microsoft Fabric not defterlerini kullanarak verileri keşfedin ve görselleştirin.
- Bölüm 3: makine öğrenmesi modellerinieğitme ve kaydetme.
Not defterinde adımları takip edin
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 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 bir göl evi ortamını not defterine eklediğinizden emin olun.
Önemli
Diğer bölümlerde kullandığınız aynı lakehouse'u bu seriye 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_smve 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. önceden tahmin etmehakkında bilgi edinin.
Model tahmini sonuçları lakehouse'a yazın
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 etmeye devam et: