Jaa


Mallien harjoittaminen scikit-learnin avulla Microsoft Fabricissa

(Scikit-learn) on suosittu avoimen lähdekoodin koneoppimisen sovelluskehys. Scikit-learnia käytetään usein valvottuun ja valvomattomaan oppimiseen. Se sisältää myös työkaluja mallin mitattamiseen, tietojen esikäsittelyän, mallin valintaan, mallin arviointiin ja paljon muuhun.

Tässä osiossa esitellään esimerkki siitä, miten voit harjoittaa ja seurata Scikit-Learn-mallisi iteraatioita.

Asenna scikit-learn

Ensin sinun on varmistettava, että scikit-learn on asennettu muistikirjaasi. Voit asentaa tai päivittää scikit-learn-version ympäristössäsi tällä komennolla:

%pip install scikit-learn

Koneoppimiskokeilun määrittäminen

Luo koneoppimiskokeilu MLFLow-ohjelmointirajapinnan avulla. MLflow set_experiment() -ohjelmointirajapinta luo uuden koneoppimiskokeilun, jos sitä ei vielä ole olemassa.

import mlflow

mlflow.set_experiment("sample-sklearn")

Scikit-learn-mallin harjoittaminen

Kokeilun luomisen jälkeen luomme mallitietojoukon ja luomme logistisen regressiomallin. Aloitamme MLflow-suorituksen ja seuraamme mittareita, parametreja ja lopullista logistista regressiomallia. Kun lopullinen malli on luotu, tallennamme tuloksena saatavan mallin lisäseurantaa varten.

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 malli on tallennettu, se voidaan ladata päättelyä varten. Tätä varten lataamme mallin ja suoritamme mallitietojoukon päättelemisen.

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