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


Εκπαίδευση μοντέλων με scikit-learn στο Microsoft Fabric

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

Προαπαιτούμενα στοιχεία

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

pip install scikit-learn

Ρύθμιση του πειράματος εκμάθησης μηχανής

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

Εκτελέστε τον ακόλουθο κώδικα στο σημειωματάριό σας και δημιουργήστε το πείραμα:

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