Model scikit-learn personalizat
În acest exercițiu vei crea un model personalizat folosind varianta pyfunc din MLflow. Folosind setul de date insurance_charges, etichetele trebuie schimbate din female în 0 și din male în 1 pentru clasificare în timpul antrenării. Când modelul este utilizat, în loc de 0 sau 1 trebuie returnate șirurile female sau male.
Modelul personalizat este un model de clasificare bazat pe LogisticRegression și va folosi o clasă numită CustomPredict. Clasa CustomPredict adaugă un pas suplimentar în metoda predict, care convertește etichetele 0 și 1 înapoi în female și male atunci când modelul primește date de intrare. Vei folosi varianta pyfunc pentru înregistrarea și încărcarea modelului.
Setul de date insurance_charges va fi preprocesат, iar modelul va fi antrenat folosind:
lr_model = LogisticRegression().fit(X_train, y_train)
Modulul MLflow va fi importat.
Acest exercițiu face parte din cursul
Introducere în MLflow
Instrucțiuni pentru exercițiu
- Folosește varianta
pyfuncdin MLflow pentru a înregistra modelul personalizat. - Setează argumentul
python_modelal luipyfuncpentru a utiliza clasa personalizatăCustomPredict(). - Încarcă modelul personalizat folosind
pyfunc.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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")