Anpassad scikit-learn-modell
I den här övningen ska du skapa en anpassad modell med MLflows pyfunc-flavor. Med datamängden insurance_charges måste etiketterna ändras från female till 0 och från male till 1 för klassificering under träningen. När modellen används ska strängarna female respektive male returneras i stället för 0 och 1.
Den anpassade modellen är en klassificeringsmodell baserad på LogisticRegression och använder en klass som heter CustomPredict. CustomPredict lägger till ett extra steg i metoden predict som konverterar etiketterna 0 och 1 tillbaka till female och male när modellen tar emot indata. Du kommer att använda pyfunc-flavorn för att logga och ladda modellen.
Datamängden insurance_charges förbehandlas och modellen tränas med:
lr_model = LogisticRegression().fit(X_train, y_train)
MLflow-modulen importeras åt dig.
Den här övningen är en del av kursen
Introduktion till MLflow
Övningsinstruktioner
- Använd MLflows
pyfunc-flavor för att logga den anpassade modellen. - Ange argumentet
python_modelipyfuncså att det använder den anpassade klassenCustomPredict(). - Ladda den anpassade modellen med
pyfunc.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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")