ฝึกแบบจําลองด้วย scikit-learn ใน Microsoft Fabric
บทความนี้อธิบายวิธีการฝึกและติดตามการวนซ้ําของแบบจําลอง scikit-learn Scikit-learn เป็นเฟรมเวิร์กการเรียนรู้ของเครื่องแบบโอเพนซอร์สที่ได้รับความนิยมซึ่งใช้บ่อยสําหรับการเรียนรู้แบบมีผู้ควบคุมและไม่ได้ใช้งาน เฟรมเวิร์กมีเครื่องมือสําหรับการใส่แบบจําลอง การประมวลผลข้อมูลล่วงหน้า การเลือกแบบจําลอง การประเมินผลแบบจําลอง และอื่น ๆ
ข้อกำหนดเบื้องต้น
ติดตั้ง scikit-learn ภายในสมุดบันทึกของคุณ คุณสามารถติดตั้ง หรืออัปเกรดเวอร์ชันของ scikit-learn บนสภาพแวดล้อมของคุณ โดยใช้คําสั่งต่อไปนี้:
pip install scikit-learn
ตั้งค่าการทดลองการเรียนรู้ของเครื่อง
คุณสามารถสร้างการทดลองการเรียนรู้ของเครื่องโดยใช้ MLFLow API ฟังก์ชัน MLflow set_experiment()
จะสร้างการทดลองการเรียนรู้ของเครื่องใหม่ที่ชื่อว่า sample-sklearn หากยังไม่มีอยู่
เรียกใช้โค้ดต่อไปนี้ในสมุดบันทึกของคุณและสร้างการทดลอง:
import mlflow
mlflow.set_experiment("sample-sklearn")
ฝึกแบบจําลอง scikit-learn
หลังจากที่คุณตั้งค่าการทดลองแล้ว คุณจะสร้างชุดข้อมูลตัวอย่างและแบบจําลองการถดถอยโลจิสติกส์ โค้ดต่อไปนี้เริ่มต้นการเรียกใช้ MLflow และติดตามเมตริก พารามิเตอร์ และแบบจําลองการถดถอยโลจิสติกขั้นสุดท้าย หลังจากที่คุณสร้างแบบจําลองขั้นสุดท้ายแล้ว คุณสามารถบันทึกแบบจําลองผลลัพธ์เพื่อการติดตามเพิ่มเติมได้
เรียกใช้โค้ดต่อไปนี้ในสมุดบันทึกของคุณ และสร้างแบบจําลองชุดข้อมูลตัวอย่างและการถดถอยโลจิสติกส์:
import mlflow.sklearn
import numpy as np
from sklearn.linear_model import LogisticRegression
from mlflow.models.signature import infer_signature
with mlflow.start_run() as run:
lr = LogisticRegression()
X = np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1)
y = np.array([0, 0, 1, 1, 1, 0])
lr.fit(X, y)
score = lr.score(X, y)
signature = infer_signature(X, y)
print("log_metric.")
mlflow.log_metric("score", score)
print("log_params.")
mlflow.log_param("alpha", "alpha")
print("log_model.")
mlflow.sklearn.log_model(lr, "sklearn-model", signature=signature)
print("Model saved in run_id=%s" % run.info.run_id)
print("register_model.")
mlflow.register_model(
"runs:/{}/sklearn-model".format(run.info.run_id), "sample-sklearn"
)
print("All done")
โหลดและประเมินแบบจําลองบนชุดข้อมูลตัวอย่าง
หลังจากที่คุณบันทึกแบบจําลองแล้ว คุณสามารถโหลดแบบจําลองสําหรับการอนุมานได้
เรียกใช้โค้ดต่อไปนี้ในสมุดบันทึกของคุณ และโหลดแบบจําลอง จากนั้นเรียกใช้การอนุมานบนชุดข้อมูลตัวอย่าง:
# Inference with loading the logged model
from synapse.ml.predict import MLflowTransformer
spark.conf.set("spark.synapse.ml.predict.enabled", "true")
model = MLflowTransformer(
inputCols=["x"],
outputCol="prediction",
modelName="sample-sklearn",
modelVersion=1,
)
test_spark = spark.createDataFrame(
data=np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1).tolist(), schema=["x"]
)
batch_predictions = model.transform(test_spark)
batch_predictions.show()