Modèle scikit-learn personnalisé
Dans cet exercice, vous allez créer un modèle personnalisé à l’aide du flavor pyfunc de MLflow. En utilisant le jeu de données insurance_charges, les étiquettes doivent être converties de female à 0 et de male à 1 pour la classification pendant l’entraînement. Lors de l’utilisation du modèle, les chaînes female ou male doivent être renvoyées au lieu de 0 ou 1.
Le modèle personnalisé est un modèle de classification basé sur LogisticRegression et utilisera une classe appelée CustomPredict. CustomPredict ajoute une étape supplémentaire dans la méthode predict qui remplace les étiquettes 0 et 1 par female et male lorsque le modèle reçoit des données en entrée. Vous utiliserez le flavor pyfunc pour consigner (log) et charger votre modèle.
Notre jeu de données insurance_charges sera prétraité et le modèle sera entraîné avec :
lr_model = LogisticRegression().fit(X_train, y_train)
Le module MLflow sera importé.
Cet exercice fait partie du cours
Introduction à MLflow
Instructions
- Utilisez le flavor
pyfuncde MLflow pour consigner (log) le modèle personnalisé. - Renseignez l’argument
python_modeldepyfuncpour utiliser la classe personnaliséeCustomPredict(). - Chargez le modèle personnalisé avec
pyfunc.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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")