Κοινή χρήση μέσω


Πώς να εκπαιδεύσετε μοντέλα με scikit-learn στο Microsoft Fabric

Το Scikit-learn (scikit-learn.org) είναι ένα δημοφιλές πλαίσιο εκμάθησης μηχανής ανοιχτού κώδικα. Χρησιμοποιείται συχνά για εποπτευόμενη και χωρίς εποπτεία εκμάθηση. Παρέχει επίσης διάφορα εργαλεία για την τοποθέτηση μοντέλου, προεπεξεργασία δεδομένων, επιλογή μοντέλου, αξιολόγηση μοντέλου και άλλα.

Σε αυτή την ενότητα, θα δούμε ένα παράδειγμα του τρόπου με τον οποίο μπορείτε να εκπαιδεύσετε και να παρακολουθήσετε τις επαναλήψεις του μοντέλου σας Scikit-Learn.

Εγκατάσταση scikit-learn

Για να ξεκινήσετε με την εκμάθηση του scikit-learn, πρέπει να εξασφαλίσετε ότι εγκαθίσταται στο σημειωματάριό σας. Μπορείτε να εγκαταστήσετε ή να αναβαθμίσετε την έκδοση του scikit-learn στο περιβάλλον σας, χρησιμοποιώντας την ακόλουθη εντολή:

%pip install scikit-learn

Στη συνέχεια, θα δημιουργήσουμε ένα πείραμα εκμάθησης μηχανής χρησιμοποιώντας το MLFLow API. Το API MLflow set_experiment() θα δημιουργήσει ένα νέο πείραμα εκμάθησης μηχανής, εάν δεν υπάρχει ήδη.

import mlflow

mlflow.set_experiment("sample-sklearn")

Εκπαίδευση μοντέλου επιστημονικής εκμάθησης

Μετά τη δημιουργία του πειράματος, θα δημιουργήσουμε ένα δείγμα συνόλου δεδομένων και θα δημιουργήσουμε ένα μοντέλο λογιστικής παλινδρόμησης. Θα ξεκινήσουμε επίσης μια εκτέλεση MLflow και θα παρακολουθούμε τα μετρικά, τις παραμέτρους και το τελικό μοντέλο λογιστικής παλινδρόμησης. Αφού δημιουργήσουμε το τελικό μοντέλο, θα αποθηκεύσουμε επίσης το μοντέλο που προκύπτει για πρόσθετη παρακολούθηση.

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

Φόρτωση και αξιολόγηση του μοντέλου σε ένα δείγμα συνόλου δεδομένων

Μετά την αποθήκευση του μοντέλου, μπορεί επίσης να φορτωθεί για συμπεραίτ. Για να το κάνουμε αυτό, θα φορτώσουμε το μοντέλο και θα εκτελέσουμε το συμπέρασμα σε ένα δείγμα συνόλου δεδομένων.

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