Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Gebruik de pyfunc-flavor van MLflow om het aangepaste model te loggen.
  • Stel het python_model-argument van pyfunc in om de custom class CustomPredict() 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")
Code bewerken en uitvoeren