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 öğretici, 3. bölümde oluşturduğunuz kayıtlı LightGBMClassifier modelinin nasıl içeri aktarılacağını gösterir. Bu öğreticide modeli eğitmek için Microsoft Fabric MLflow model kayıt defteri kullanılmış ve ardından bir lakehouse'dan yüklenen test veri kümesi üzerinde toplu tahminler yapılmıştır.
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. Daha fazla bilgi edinmek için bkz. PREDICT.
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 köşesindeki deneyim değiştiriciyi kullanarak Fabric'e geçin.
Bu, beş bölümden oluşan bir öğretici serisinin 4. bölümü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.
%pip install scikit-learn==1.6.1
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
Aşağıdaki kod parçacığında, 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 çevresinde sarmalayıcı görevi görü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:
- Modelin giriş olarak ihtiyaç duyduğu test DataFrame sütunları (bu örnekte, modelin tümüne ihtiyacı vardı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)
Aşağıdaki kod parçacığı şu adımları işler:
from synapse.ml.predict import MLFlowTransformer
model = MLFlowTransformer(
inputCols=list(df_test.columns),
outputCol='predictions',
modelName='lgbm_sm',
modelVersion=1
)
MLFlowTransformer nesnesine sahip olduğunuz için, aşağıdaki kod parçacığında gösterildiği gibi 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 parçacığı, PREDICT işlevini çağırmak için Spark SQL API'sini kullanı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 parçacığı, PREDICT işlevini çağırmak için PySpark UDF kullanı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şturabilirsiniz. PREDICT işlevi hakkında daha fazla bilgi için bkz. PREDICT kaynağıyla makine öğrenmesi modeli puanlaması .
Model tahmini sonuçları lakehouse'a yazın
Toplu tahminler oluşturduktan sonra, aşağıdaki kod parçacığında gösterildiği gibi 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 = "df_test_with_predictions_v1"
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: