Sådan oplærer du modeller med scikit-learn i Microsoft Fabric

Scikit-learn (scikit-learn.org) er et populært værktøj til maskinel indlæring med åben kildekode. Det bruges ofte til overvåget og ikke-overvåget læring. Den indeholder også forskellige værktøjer til tilpasning af modeller, forbehandling af data, modelvalg, modelevaluering og meget mere.

I dette afsnit gennemgår vi et eksempel på, hvordan du kan oplære og spore gentagelserne af din Scikit-Learn-model.

Installér scikit-learn

Hvis du vil i gang med scikit-learn, skal du sikre dig, at den er installeret 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

Derefter opretter vi et maskinel indlæringseksperiment ved hjælp af API'en MLFLow. MLflow set_experiment()-API'en opretter et nyt maskinlæringseksperiment, hvis det ikke allerede findes.

import mlflow

mlflow.set_experiment("sample-sklearn")

Oplær en scikit-learn-model

Når eksperimentet er blevet oprettet, opretter vi et eksempeldatasæt og opretter en logistisk regressionsmodel. Vi starter også en MLflow-kørsel og sporer målepunkter, parametre og den endelige logistiske regressionsmodel. Når vi har oprettet den endelige model, gemmer vi også den resulterende model til yderligere sporing.

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 modellen er gemt, kan den også indlæses til udledning. Det gør vi ved at indlæse modellen og køre 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()
  • Få mere at vide om modeller til maskinel indlæring.
  • Få mere at vide om eksperimenter med maskinel indlæring.