Trainieren von Modellen mithilfe von Scikit-learn in Microsoft Fabric
In diesem Artikel wird beschrieben, wie Sie die Iterationen eines Scikit-learn-Modells trainieren und verfolgen können. Scikit-learn ist ein beliebtes Open-Source-Framework für maschinelles Lernen, das häufig für beaufsichtigtes und nicht beaufsichtigtes Lernen verwendet wird. Das Framework bietet Tools für Modellanpassung, Datenvorverarbeitung, Modellauswahl, Modellauswertung und vieles mehr.
Voraussetzungen
Installieren Sie Scikit-learn in Ihrem Notebook. Sie können die Version von Scikit-learn in Ihrer Umgebung mit dem folgenden Befehl installieren oder upgraden:
pip install scikit-learn
Einrichten des Machine Learning-Experiments
Mithilfe der MLFLow-API können Sie ein Machine Learning-Experiment erstellen. Die MLflow-Funktion set_experiment()
erstellt ein neues Machine Learning-Experiment namens sample-sklearn, sofern noch nicht vorhanden.
Führen Sie den folgenden Code in Ihrem Notebook aus, und erstellen Sie das Experiment:
import mlflow
mlflow.set_experiment("sample-sklearn")
Trainieren eines Scikit-learn-Modells
Nachdem Sie das Experiment eingerichtet haben, erstellen Sie ein Beispieldataset und ein Modell für logistische Regression. Der folgende Code startet eine MLflow-Ausführung und verfolgt die Metriken, Parameter und das endgültige Modell für logistische Regression. Nachdem Sie das endgültige Modell generiert haben, können Sie das resultierende Modell zur zusätzlichen Nachverfolgung speichern.
Führen Sie den folgenden Code im Notebook aus und erstellen Sie das Beispieldataset und das Modell für logistische Regression:
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")
Laden und Auswerten des Modells in einem Beispieldataset
Nach dem Speichern des Modells können Sie es für das Rückschließen laden.
Führen Sie den folgenden Code in Ihrem Notebook aus, laden Sie das Modell und wenden Sie dann die Inferenz auf ein Beispieldataset an:
# 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()
Zugehöriger Inhalt
- Untersuchen von Machine Learning-Modellen
- Erstellen von Machine Learning-Experimenten