Jaa


Mallien harjoittaminen scikit-learnilla Microsoft Fabricissa

Tässä artikkelissa kuvataan, miten voit kouluttaa ja seurata scikit-learn-mallin iteraatioita. Scikit-learn on suosittu avoimen lähdekoodin koneoppimisen ympäristö, jota käytetään usein valvottuun ja valvomattomaan oppimiseen. Kehys tarjoaa työkaluja mallin mitattamiseen, tietojen esikäsittelyän, mallin valintaan, mallin arviointiin ja paljon muuhun.

Edellytykset

Asenna scikit-learn muistikirjaasi. Voit asentaa tai päivittää scikit-learn-version ympäristössäsi käyttämällä seuraavaa komentoa:

pip install scikit-learn

Koneoppimiskokeilun määrittäminen

Voit luoda koneoppimiskokeiluja käyttämällä MLFLow-ohjelmointirajapintaa. MLflow-funktio set_experiment() luo uuden koneoppimiskokeilun nimeltä sample-sklearn, jos sitä ei vielä ole olemassa.

Suorita seuraava koodi muistikirjassasi ja luo kokeilu:

import mlflow

mlflow.set_experiment("sample-sklearn")

Scikit-learn-mallin harjoittaminen

Kun olet määrittänyt kokeilun, luo mallitietojoukko ja logistinen regressiomalli. Seuraava koodi aloittaa MLflow-suorituksen ja seuraa mittareita, parametreja ja lopullista logistista regressiomallia. Kun olet luonut lopullisen mallin, voit tallentaa tuloksena saatavan mallin lisäseurantaa varten.

Suorita seuraava koodi muistikirjassasi ja luo mallitietojoukko ja logistinen regressiomalli:

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")

Mallin lataaminen ja arvioiminen mallitietojoukolle

Kun olet tallentanut mallin, voit ladata sen päättelyä varten.

Suorita seuraava koodi muistikirjassa, lataa malli ja suorita sitten tunnistus mallitietojoukosta:

# 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()