Custom scikit-learn model
ในแบบฝึกหัดนี้ คุณจะสร้างโมเดลแบบกำหนดเองโดยใช้ pyfunc flavor ของ MLflow โดยใช้ชุดข้อมูล insurance_charges ซึ่งต้องแปลงป้ายกำกับจาก female เป็น 0 และ male เป็น 1 สำหรับการจำแนกประเภทระหว่างการฝึกโมเดล แต่เมื่อนำโมเดลไปใช้งาน ต้องแสดงผลเป็น female หรือ male แทน 0 หรือ 1
โมเดลแบบกำหนดเองนี้เป็นโมเดลการจำแนกประเภทที่อิงจาก LogisticRegression และใช้ Class ชื่อ CustomPredict โดย CustomPredict จะเพิ่มขั้นตอนเสริมในเมธอด predict เพื่อแปลงป้ายกำกับ 0 และ 1 กลับเป็น female และ male เมื่อโมเดลรับข้อมูลเข้า และจะใช้ pyfunc flavor สำหรับการบันทึกและโหลดโมเดล
ชุดข้อมูล insurance_charges จะถูกประมวลผลล่วงหน้า และโมเดลจะถูกฝึกด้วย:
lr_model = LogisticRegression().fit(X_train, y_train)
โมดูล MLflow จะถูก import ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
MLflow เบื้องต้น
คำแนะนำการฝึกหัด
- ใช้
pyfuncflavor ของ MLflow เพื่อบันทึกโมเดลแบบกำหนดเอง - กำหนดอาร์กิวเมนต์
python_modelของpyfuncให้ใช้งาน Custom ClassCustomPredict() - โหลดโมเดลแบบกำหนดเองโดยใช้
pyfunc
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Log the pyfunc model
____.____.____(
artifact_path="lr_pyfunc",
# Set model to use CustomPredict Class
python_model=____,
artifacts={"lr_model": "lr_model"}
)
run = mlflow.last_active_run()
run_id = run.info.run_id
# Load the model in python_function format
loaded_model = ____.____.____(f"runs:/{run_id}/lr_pyfunc")