Bagikan melalui


Melatih model dengan scikit-learn di Microsoft Fabric

Artikel ini menjelaskan cara melatih dan melacak iterasi model scikit-learn. Scikit-learn adalah kerangka kerja pembelajaran mesin sumber terbuka populer yang sering digunakan untuk pembelajaran yang diawasi dan tidak diawasi. Kerangka kerja ini menyediakan alat untuk penyesuaian model, praproscesing data, pemilihan model, evaluasi model, dan banyak lagi.

Prasyarat

Instal scikit-learn dalam notebook Anda. Anda dapat menginstal atau meningkatkan versi scikit-learn di lingkungan Anda dengan menggunakan perintah berikut:

pip install scikit-learn

Menyiapkan eksperimen pembelajaran mesin

Anda dapat membuat eksperimen pembelajaran mesin dengan menggunakan MLFLow API. Fungsi MLflow set_experiment() membuat eksperimen pembelajaran mesin baru bernama sample-sklearn, jika belum ada.

Jalankan kode berikut di buku catatan Anda dan buat eksperimen:

import mlflow

mlflow.set_experiment("sample-sklearn")

Melatih model scikit-learn

Setelah menyiapkan eksperimen, Anda membuat himpunan data sampel dan model regresi logistik. Kode berikut memulai eksekusi MLflow, dan melacak metrik, parameter, dan model regresi logistik akhir. Setelah membuat model akhir, Anda dapat menyimpan model yang dihasilkan untuk pelacakan lainnya.

Jalankan kode berikut di buku catatan Anda dan buat himpunan data sampel dan model regresi logistik:

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

Memuat dan mengevaluasi model pada himpunan data sampel

Setelah menyimpan model, Anda dapat memuatnya untuk inferensi.

Jalankan kode berikut di buku catatan Anda dan muat model, lalu jalankan inferensi pada himpunan data sampel:

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