Εκπαίδευση μοντέλων με 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()
Σχετικό περιεχόμενο
- Εξερεύνηση μοντέλων εκμάθησης μηχανής
- Δημιουργία πειραμάτων εκμάθησης μηχανής