Benutzerdefiniertes Scikit-Learn-Modell
In dieser Übung erstellst du ein benutzerdefiniertes Modell mit der MLflow-Variante pyfunc
. Bei der Verwendung des Datensatzes insurance_charges
müssen die Labels für die Klassifizierung während des Trainings von female
in 0
und von male
in 1
geändert werden. Bei der Verwendung des Modells müssen die Zeichenketten von female
oder male
anstelle von 0
oder 1
zurückgegeben werden.
Das benutzerdefinierte Modell ist ein Klassifizierungsmodell, das auf LogisticRegression
basiert und eine Klasse namens CustomPredict
verwendet. CustomPredict
fügt einen zusätzlichen Schritt in der Methode predict
hinzu, der deine Labels 0
und 1
auf female
und male
zurücksetzt, wenn das Modell Eingaben erhält. Du wirst pyfunc
für das Protokollieren und Laden deines Modells verwenden.
Unser insurance_charges
Datensatz wird vorverarbeitet und das Modell wird damit 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 MLflow's
pyfunc
flavor, um das benutzerdefinierte Modell zu protokollieren. - Setze das Argument
pyfunc
python_model
, um die benutzerdefinierte KlasseCustomPredict()
zu verwenden. - Lade das benutzerdefinierte Modell mit
pyfunc
.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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")