บทช่วยสอนส่วนที่ 4: ดําเนินการให้คะแนนแบบกลุ่มและบันทึกการทํานายไปยังเลคเฮ้าส์
ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีการนําเข้าแบบจําลอง LightGBMClassifier ที่ลงทะเบียนไว้ซึ่งได้รับการฝึกฝนในส่วนที่ 3 โดยใช้รีจิสทรีแบบจําลอง Microsoft Fabric MLflow และดําเนินการคาดการณ์แบบชุดงานบนชุดข้อมูลทดสอบที่โหลดจากเลคเฮ้าส์
Microsoft Fabric ช่วยให้คุณสามารถดําเนินการแบบจําลองการเรียนรู้ของเครื่องด้วยฟังก์ชันที่ปรับขนาดได้ที่เรียกว่า PREDICT ซึ่งสนับสนุนการให้คะแนนกลุ่มในกลไกการคํานวณใด ๆ คุณสามารถสร้างการคาดการณ์แบบกลุ่มได้โดยตรงจากสมุดบันทึก Microsoft Fabric หรือจากหน้ารายการของแบบจําลองที่กําหนด เรียนรู้เกี่ยวกับการคาดการณ์
หากต้องการสร้างการคาดการณ์แบบกลุ่มในชุดข้อมูลทดสอบ คุณจะใช้แบบจําลอง LightGBM ที่ได้รับการฝึกเวอร์ชัน 1 ที่แสดงประสิทธิภาพที่ดีที่สุดจากแบบจําลองการเรียนรู้ของเครื่องที่ได้รับการฝึกทั้งหมด คุณจะโหลดชุดข้อมูลทดสอบลงใน Spark DataFrame และสร้างวัตถุ MLFlowTransformer เพื่อสร้างการคาดการณ์แบบชุดงาน จากนั้นคุณสามารถเรียกใช้ฟังก์ชัน PREDICT โดยใช้หนึ่งในสามวิธีต่อไปนี้:
- API ตัวแปลงจาก SynapseML
- Spark SQL API
- ฟังก์ชันที่ผู้ใช้กําหนดเอง PySpark (UDF)
ข้อกําหนดเบื้องต้น
รับ การสมัครใช้งาน Microsoft Fabric หรือลงทะเบียนสําหรับ Microsoft Fabric รุ่นทดลองใช้ฟรี
ลงชื่อเข้าใช้ Microsoft Fabric
ใช้ตัวสลับประสบการณ์การใช้งานที่ด้านล่างซ้ายของหน้าหลักของคุณเพื่อเปลี่ยนเป็น Fabric
ส่วนนี้ 4 จาก 5 ในชุดบทช่วยสอน เมื่อต้องการทําบทช่วยสอนนี้ให้เสร็จสมบูรณ์ ก่อนอื่นให้ทําให้เสร็จสมบูรณ์:
- ส่วนที่ 1: นําเข้าข้อมูลลงในทะเลสาบ Microsoft Fabric โดยใช้ Apache Spark
- ส่วนที่ 2: สํารวจและแสดงข้อมูลโดยใช้สมุดบันทึก Microsoft Fabric เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับข้อมูล
- ส่วนที่ 3: ฝึกและลงทะเบียนแบบจําลองการเรียนรู้ของเครื่อง
ติดตามพร้อมกับในสมุดบันทึก
predict.ipynb 4 คือสมุดบันทึกที่มาพร้อมกับบทช่วยสอนนี้
เมื่อต้องการเปิดสมุดบันทึกที่มาพร้อมกับบทช่วยสอนนี้ ให้ทําตามคําแนะนําใน เตรียมระบบของคุณสําหรับบทช่วยสอนวิทยาศาสตร์ข้อมูล การนําเข้าสมุดบันทึกไปยังพื้นที่ทํางานของคุณ
ถ้าคุณต้องการคัดลอกและวางโค้ดจากหน้านี้ สร้างสมุดบันทึกใหม่
ตรวจสอบให้แน่ใจว่า แนบ lakehouse เข้ากับ สมุดบันทึกก่อนที่คุณจะเริ่มเรียกใช้โค้ด
สําคัญ
แนบเลคเฮาส์เดียวกันกับที่คุณใช้ในส่วนอื่น ๆ ของซีรี่ส์นี้
โหลดข้อมูลทดสอบ
โหลดข้อมูลทดสอบที่คุณบันทึกไว้ในส่วนที่ 3
df_test = spark.read.format("delta").load("Tables/df_test")
display(df_test)
คาดการณ์ด้วย API ตัวแปลง
เมื่อต้องการใช้ TRANSFORMer API จาก SynapseML คุณจะต้องสร้างวัตถุ MLFlowTransformer ก่อน
สร้างอินสแตนซ์ของวัตถุ MLFlowTransformer
ออบเจ็กต์ MLFlowTransformer เป็นตัวรวบรอบแบบจําลอง MLFlow ที่คุณลงทะเบียนไว้ในส่วนที่ 3 ซึ่งช่วยให้คุณสามารถสร้างการคาดการณ์ชุดงานบน DataFrame ที่กําหนด หากต้องการสร้างอินสแตนซ์ของออบเจ็กต์ MLFlowTransformer คุณจะต้องระบุพารามิเตอร์ต่อไปนี้:
- คอลัมน์จาก DataFrame ทดสอบที่คุณต้องการเป็นข้อมูลป้อนเข้าไปยังแบบจําลอง (ในกรณีนี้ คุณจะต้องใช้ทั้งหมด)
- ชื่อสําหรับคอลัมน์ผลลัพธ์ใหม่ (ในกรณีนี้คือการคาดการณ์)
- ชื่อแบบจําลองที่ถูกต้องและเวอร์ชันแบบจําลองเพื่อสร้างการคาดการณ์ (ในกรณีนี้คือ
lgbm_sm
และเวอร์ชัน 1)
from synapse.ml.predict import MLFlowTransformer
model = MLFlowTransformer(
inputCols=list(df_test.columns),
outputCol='predictions',
modelName='lgbm_sm',
modelVersion=1
)
ตอนนี้คุณมีออบเจ็กต์ MLFlowTransformer แล้ว คุณสามารถใช้เพื่อสร้างการคาดการณ์ชุดงานได้
import pandas
predictions = model.transform(df_test)
display(predictions)
คาดการณ์ด้วย Spark SQL API
โค้ดต่อไปนี้จะเรียกใช้ฟังก์ชัน PREDICT ด้วย Spark SQL API
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))
ทํานายด้วยฟังก์ชันที่ผู้ใช้กําหนดเอง (UDF)
โค้ดต่อไปนี้จะเรียกใช้ฟังก์ชัน PREDICT ด้วย 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])))
โปรดทราบว่าคุณยังสามารถสร้างรหัส PREDICT ได้จากหน้ารายการของแบบจําลอง เรียนรู้เกี่ยวกับการคาดการณ์
เขียนผลลัพธ์การคาดการณ์แบบจําลองไปยังเลคเฮ้าส์
เมื่อคุณสร้างการคาดการณ์แบบกลุ่มให้เขียนผลลัพธ์การคาดการณ์แบบจําลองกลับไปยัง 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}")
ขั้นตอนถัดไป
ไปต่อยัง: