Former des modèles avec scikit-learn dans Microsoft Fabric
Cet article décrit comment former et suivre les itérations d’un modèle scikit-learn. Scikit-learn est un cadre d’apprentissage automatique open-source populaire fréquemment utilisé pour l’apprentissage supervisé et non supervisé. Le cadre fournit des outils pour l’ajustement des modèles, le prétraitement des données, la sélection des modèles, l’évaluation des modèles, etc.
Prérequis
Installez scikit-learn dans votre notebook. Vous pouvez installer ou mettre à jour la version de scikit-learn sur votre environnement à l’aide de la commande suivante :
pip install scikit-learn
Configurer l'expérience d'apprentissage automatique
Vous pouvez créer une expérience d'apprentissage automatique à l'aide de l'API MLFLow. La fonction set_experiment()
de MLflow crée une nouvelle expérience d’apprentissage automatique nommée sample-sklearn, si elle n’existe pas déjà.
Pour créer l’expérience, exécutez le code suivant dans votre notebook :
import mlflow
mlflow.set_experiment("sample-sklearn")
Entraîner un modèle scikit-learn
Après avoir mis en place l’expérience, vous créez un exemple de jeu de données et un modèle de régression logistique. Le code suivant lance une exécution MLflow et suit les métriques, les paramètres et le modèle de régression logistique final. Après avoir généré le modèle final, vous pouvez enregistrer le modèle résultant pour un suivi plus approfondi.
Exécutez le code suivant dans votre notebook et créez l’exemple de jeu de données et le modèle de régression logistique :
import mlflow.sklearn
import numpy as np
from sklearn.linear_model import LogisticRegression
from mlflow.models.signature import infer_signature
with mlflow.start_run() as run:
lr = LogisticRegression()
X = np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1)
y = np.array([0, 0, 1, 1, 1, 0])
lr.fit(X, y)
score = lr.score(X, y)
signature = infer_signature(X, y)
print("log_metric.")
mlflow.log_metric("score", score)
print("log_params.")
mlflow.log_param("alpha", "alpha")
print("log_model.")
mlflow.sklearn.log_model(lr, "sklearn-model", signature=signature)
print("Model saved in run_id=%s" % run.info.run_id)
print("register_model.")
mlflow.register_model(
"runs:/{}/sklearn-model".format(run.info.run_id), "sample-sklearn"
)
print("All done")
Charger et évaluer le modèle sur un exemple de jeu de données
Une fois le modèle enregistré, vous pouvez le charger pour l'inférence.
Exécutez le code suivant dans votre notebook et chargez le modèle, puis exécutez l’inférence sur un exemple de jeu de données :
# Inference with loading the logged model
from synapse.ml.predict import MLflowTransformer
spark.conf.set("spark.synapse.ml.predict.enabled", "true")
model = MLflowTransformer(
inputCols=["x"],
outputCol="prediction",
modelName="sample-sklearn",
modelVersion=1,
)
test_spark = spark.createDataFrame(
data=np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1).tolist(), schema=["x"]
)
batch_predictions = model.transform(test_spark)
batch_predictions.show()
Contenu connexe
- Explorer les modèles Machine Learning
- Créer des expériences Azure Machine Learning