Aangepast scikit-learn-model
In deze oefening ga je een aangepast model maken met de pyfunc-flavor van MLflow. Met de insurance_charges-gegevensset moeten de labels tijdens het trainen aangepast worden van female naar 0 en van male naar 1 voor classificatie. Bij het gebruiken van het model moeten in plaats van 0 of 1 de strings female of male worden teruggegeven.
Het aangepaste model is een classificatiemodel op basis van LogisticRegression en gebruikt een class genaamd CustomPredict. CustomPredict voegt een extra stap toe in de predict-methode die de labels 0 en 1 weer omzet naar female en male wanneer het model invoer krijgt. Je gebruikt de pyfunc-flavor om je model te loggen en te laden.
Onze insurance_charges-gegevensset wordt vooraf verwerkt en het model wordt getraind met:
lr_model = LogisticRegression().fit(X_train, y_train)
De MLflow-module wordt geïmporteerd.
Deze oefening maakt deel uit van de cursus
Introductie tot MLflow
Oefeninstructies
- Gebruik de
pyfunc-flavor van MLflow om het aangepaste model te loggen. - Stel het
python_model-argument vanpyfuncin om de custom classCustomPredict()te gebruiken. - Laad het aangepaste model met
pyfunc.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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")