Benutzerdefiniertes scikit-learn-Modell
In dieser Übung erstellst du ein benutzerdefiniertes Modell mit dem pyfunc-Flavor von MLflow. Beim Datensatz insurance_charges müssen die Labels für das Training zur Klassifikation von female zu 0 und von male zu 1 geändert werden. Bei der Modellauswertung sollen statt 0 oder 1 wieder die Strings female bzw. male zurückgegeben werden.
Das benutzerdefinierte Modell ist ein Klassifikationsmodell auf Basis von LogisticRegression und verwendet eine Klasse namens CustomPredict. CustomPredict fügt im predict-Verfahren einen zusätzlichen Schritt hinzu, der die Labels 0 und 1 bei der Modellausgabe wieder auf female und male zurücksetzt. Du wirst den pyfunc-Flavor zum Protokollieren und Laden deines Modells verwenden.
Unser Datensatz insurance_charges wird vorverarbeitet, und das Modell wird so trainiert:
lr_model = LogisticRegression().fit(X_train, y_train)
Das MLflow-Modul wird importiert.
Diese Übung ist Teil des Kurses
Einführung in MLflow
Anleitung zur Übung
- Verwende den
pyfunc-Flavor von MLflow, um das benutzerdefinierte Modell zu protokollieren. - Setze das
python_model-Argument vonpyfunc, um die benutzerdefinierte KlasseCustomPredict()zu verwenden. - Lade das benutzerdefinierte Modell mit
pyfunc.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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")