Eseguire il training dei modelli con scikit-learn in Microsoft Fabric
Questo articolo descrive come eseguire il training e tenere traccia delle iterazioni di un modello scikit-learn. Scikit-learn è un framework di Machine Learning open source comunemente usato per l'apprendimento supervisionato e non supervisionato. Il framework fornisce strumenti per l'adattamento del modello, la pre-elaborazione dei dati, la selezione del modello, la valutazione del modello e altro ancora.
Prerequisiti
Installare scikit-learn all'interno del notebook. È possibile installare o aggiornare la versione di scikit-learn nell'ambiente usando il comando seguente:
pip install scikit-learn
Configurare l'esperimento di Machine Learning
È possibile creare un esperimento di Machine Learning usando l'API MLFLow. La funzione MLflow set_experiment()
crea un nuovo esperimento di Machine Learning denominato sample-sklearn, se non esiste già.
Eseguire il codice seguente nel proprio notebook e creare l'esperimento:
import mlflow
mlflow.set_experiment("sample-sklearn")
Eseguire il training di un modello di scikit-learn
Dopo aver configurato l'esperimento, creare un set di dati di esempio e un modello di regressione logistica. Il codice seguente avvia un'esecuzione MLflow e tiene traccia delle metriche, dei parametri e del modello di regressione logistica finale. Dopo aver generato il modello finale, è possibile salvare il modello risultante per un maggior rilevamento.
Eseguire il codice seguente nel notebook, quindi creare il set di dati di esempio e il modello di regressione logistica:
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")
Caricare e valutare il modello in un set di dati di esempio
Dopo aver salvato il modello, è possibile caricarlo per l'inferenza.
Eseguire il codice seguente nel notebook, quindi caricare il modello ed eseguire l'inferenza in un set di dati di esempio:
# 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()
Contenuto correlato
- Esplorare i modelli di Machine Learning
- Creare esperimenti di Machine Learning