Oplær modeller med scikit-learn i Microsoft Fabric
I denne artikel beskrives det, hvordan du oplærer og sporer gentagelser af en scikit-learn-model. Scikit-learn er en populær open source machine learning-struktur, der ofte bruges til overvåget og ikke-overvåget læring. Strukturen indeholder værktøjer til tilpasning af modeller, forbehandling af data, modelvalg, modelevaluering og meget mere.
Forudsætninger
Installér scikit-learn i din notesbog. Du kan installere eller opgradere versionen af scikit-learn i dit miljø ved hjælp af følgende kommando:
pip install scikit-learn
Konfigurer eksperimentet for maskinel indlæring
Du kan oprette et maskinel indlæringseksperiment ved hjælp af MLFLow-API'en. Funktionen MLflow set_experiment()
opretter et nyt machine learning-eksperiment med navnet sample-sklearn, hvis det ikke allerede findes.
Kør følgende kode i notesbogen, og opret eksperimentet:
import mlflow
mlflow.set_experiment("sample-sklearn")
Oplær en scikit-learn-model
Når du har konfigureret eksperimentet, opretter du et eksempeldatasæt og en logistisk regressionsmodel. Følgende kode starter en MLflow-kørsel og sporer metrikværdierne, parametrene og den endelige logistiske regressionsmodel. Når du har genereret den endelige model, kan du gemme den resulterende model for at få mere sporing.
Kør følgende kode i notesbogen, og opret eksempeldatasættet og modellen til logistisk 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")
Indlæs og evaluer modellen i et eksempeldatasæt
Når du har gemt modellen, kan du indlæse den til udledning.
Kør følgende kode i notesbogen, og indlæs modellen, og kør derefter resultatet på et eksempeldatasæt:
# 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()