AutoML στο Fabric (προεπισκόπηση)
Το AutoML (Αυτοματοποιημένη εκμάθηση μηχανής) είναι μια συλλογή μεθόδων και εργαλείων που αυτοματοποιούν την εκπαίδευση και τη βελτιστοποίηση μοντέλων εκμάθησης μηχανής με μικρή ανθρώπινη συμμετοχή. Στόχος του AutoML είναι η απλοποίηση και επιτάχυνση της διαδικασίας επιλογής του καλύτερου μοντέλου εκμάθησης μηχανής και υπερπαραμετών για ένα δεδομένο σύνολο δεδομένων, το οποίο συνήθως απαιτεί πολλές δεξιότητες και υπολογιστική ισχύ.
Σημαντικό
Αυτή η δυνατότητα είναι σε προεπισκόπηση.
Στο Fabric, οι επιστήμονες δεδομένων μπορούν να χρησιμοποιήσουν flaml.AutoML
για να αυτοματοποιήσουν τις εργασίες εκμάθησης μηχανής.
Το AutoML μπορεί να βοηθήσει επαγγελματίες και προγραμματιστές εκμάθησης μηχανής από διαφορετικούς τομείς έως:
- Δημιουργία λύσεων εκμάθησης μηχανής με ελάχιστη κωδικοποίηση
- Μείωση χρόνου και κόστους
- Εφαρμογή βέλτιστων πρακτικών επιστήμης δεδομένων
- Γρήγορη και αποτελεσματική επίλυση προβλημάτων
Ροή εργασιών AutoML
flaml.AutoML
Το είναι μια κλάση για το AutoML με βάση την εργασία. Μπορεί να χρησιμοποιηθεί ως εκτιμητής στυλ Scikit-learn με τις συνήθεις μεθόδους προσαρμογής και πρόβλεψης.
Για να ξεκινήσετε μια δοκιμαστική έκδοση AutoML, οι χρήστες χρειάζεται μόνο να παρέχουν τα δεδομένα εκπαίδευσης και τον τύπο εργασίας. Με τις ενσωματωμένες εμπειρίες MLflow στο Fabric, οι χρήστες μπορούν επίσης να εξετάσουν τις διαφορετικές εκτελέσεις που επιχειρήθηκαν στη δοκιμαστική έκδοση για να δουν πώς επιλέχθηκε το τελικό μοντέλο.
Δεδομένα εκπαίδευσης
Στο Fabric, οι χρήστες μπορούν να μεταβιβάσουν τους ακόλουθους τύπους εισόδου στη συνάρτηση AutoML fit
:
Αριθμητικός πίνακας: Όταν τα δεδομένα εισόδου αποθηκεύονται σε έναν πίνακα Numpy, μεταβιβάζονται
fit()
ως X_train και y_train.Πλαίσιο δεδομένων Pandas: Όταν τα δεδομένα εισόδου αποθηκεύονται σε ένα πλαίσιο δεδομένων Pandas, μεταβιβάζονται
fit()
είτε ως X_train και y_train, είτε ως πλαίσιο δεδομένων και ετικέτα.Pandas στο πλαίσιο δεδομένων Spark: Όταν τα δεδομένα εισόδου αποθηκεύονται ως πλαίσιο δεδομένων Spark, μπορούν να μετατραπούν σε ένα
Pandas
Spark
πλαίσιο δεδομένων χρησιμοποιώνταςto_pandas_on_spark()
και, στη συνέχεια, ναfit()
διαβιβαστούν ως πλαίσιο δεδομένων και ετικέτα.from flaml.automl.spark.utils import to_pandas_on_spark psdf = to_pandas_on_spark(sdf) automl.fit(dataframe=psdf, label='Bankrupt?', isUnbalance=True, **settings)
Πρόβλημα εκμάθησης μηχανής
Οι χρήστες μπορούν να καθορίσουν την εργασία εκμάθησης μηχανής χρησιμοποιώντας το task
όρισμα. Υπάρχουν διάφορες υποστηριζόμενες εργασίες εκμάθησης μηχανής, όπως:
- Ταξινόμηση: Ο κύριος στόχος των μοντέλων ταξινόμησης είναι να προβλέψουμε σε ποιες κατηγορίες εμπίπτουν τα νέα δεδομένα με βάση τις γνώσεις από τα δεδομένα εκπαίδευσής τους. Συνήθη παραδείγματα ταξινόμησης είναι ο εντοπισμός απάτης, η αναγνώριση γραφής και ο εντοπισμός αντικειμένων.
- Παλινδρόμηση: Τα μοντέλα παλινδρόμησης προβλέπουν αριθμητικές τιμές εξόδου με βάση ανεξάρτητες προβλέψεις. Κατά την παλινδρόμηση, ο στόχος είναι να συμβάλει στη δημιουργία της σχέσης μεταξύ εκείνων των ανεξάρτητων μεταβλητών πρόβλεψης, εκτιμώντας πώς μια μεταβλητή επηρεάζει τις άλλες. Για παράδειγμα, οι τιμές των αυτοκινήτων βασίζονται σε χαρακτηριστικά όπως, χιλιομετρική τιμή φυσικού αερίου, αξιολόγηση ασφάλειας κ.λπ.
- Πρόβλεψη χρονικής σειράς: Χρησιμοποιείται για την πρόβλεψη μελλοντικών τιμών με βάση τα ιστορικά σημεία δεδομένων που έχουν παραγγελθούν κατά ώρα. Σε μια χρονική σειρά, τα δεδομένα συλλέγονται και καταγράφονται σε τακτά διαστήματα σε μια συγκεκριμένη περίοδο, όπως ημερήσια, εβδομαδιαία, μηνιαία ή ετήσια. Ο στόχος της πρόβλεψης χρονικής σειράς είναι ο προσδιορισμός μοτίβων, τάσεων και εποχικότητας στα δεδομένα και, στη συνέχεια, η χρήση αυτών των πληροφοριών για τη δημιουργία προβλέψεων σχετικά με τη μελλοντική τιμή.
Για να μάθετε περισσότερα σχετικά με τις άλλες εργασίες που υποστηρίζονται στο FLAML, μπορείτε να επισκεφθείτε την τεκμηρίωση για τις εργασίες AutoML στο FLAML.
Προαιρετικές είσοδοι
Δώστε διάφορους περιορισμούς και εισόδους για να ρυθμίσετε τις παραμέτρους της δοκιμαστικής έκδοσης AutoML.
Περιορισμοί
Κατά τη δημιουργία μιας δοκιμαστικής έκδοσης AutoML, οι χρήστες μπορούν επίσης να ρυθμίσουν περιορισμούς στη διαδικασία AutoML, τα ορίσματα κατασκευής πιθανών εκτιμητών, τύπους μοντέλων που δοκιμάσατε στο AutoML, ακόμη και περιορισμούς στα μετρικά της δοκιμαστικής έκδοσης AutoML.
Για παράδειγμα, ο παρακάτω κώδικας επιτρέπει στους χρήστες να καθορίσουν έναν περιορισμό μετρικών στη δοκιμαστική έκδοση AutoML.
metric_constraints = [("train_loss", "<=", 0.1), ("val_loss", "<=", 0.1)]
automl.fit(X_train, y_train, max_iter=100, train_time_limit=1, metric_constraints=metric_constraints)
Για να μάθετε περισσότερα σχετικά με αυτές τις ρυθμίσεις παραμέτρων, μπορείτε να επισκεφθείτε την τεκμηρίωση σχετικά με τις ρυθμίσεις παραμέτρων στο FLAML.
Μετρικό βελτιστοποίησης
Κατά τη διάρκεια της εκπαίδευσης, η συνάρτηση AutoML δημιουργεί πολλές δοκιμές, οι οποίες δοκιμούν διαφορετικούς αλγόριθμους και παραμέτρους. Το εργαλείο AutoML επαναλαμβάνεται μέσω αλγόριθμων εκμάθησης μηχανής και υπερπαραμετών. Σε αυτή τη διαδικασία, κάθε επανάληψη δημιουργεί ένα μοντέλο με βαθμολογία εκπαίδευσης. Όσο καλύτερη είναι η βαθμολογία για το μετρικό για το οποίο θέλετε να βελτιστοποιήσετε, τόσο καλύτερο θεωρείται το μοντέλο για να "ταιριάζει" στα δεδομένα σας. Το μετρικό βελτιστοποίησης καθορίζεται μέσω του ορίσματος metric
. Μπορεί να είναι είτε μια συμβολοσειρά, η οποία αναφέρεται σε ένα ενσωματωμένο μετρικό, είτε μια συνάρτηση που ορίζεται από τον χρήστη.
Μετρικά βελτιστοποίησης AutoML
Παράλληλη ρύθμιση
Σε ορισμένες περιπτώσεις, μπορεί να θέλετε να επισπεύσετε τη δοκιμαστική έκδοση AutoML χρησιμοποιώντας το Apache Spark για να παραλληλίσετε την εκπαίδευσή σας. Για τα συμπλέγματα Spark, από προεπιλογή, το FLAML εκκινεί μία δοκιμαστική έκδοση ανά εκτελέσιμο αρχείο. Μπορείτε επίσης να προσαρμόσετε τον αριθμό των ταυτόχρονων δοκιμών χρησιμοποιώντας το n_concurrent_trials
όρισμα.
automl.fit(X_train, y_train, n_concurrent_trials=4, use_spark=True)
Για να μάθετε περισσότερα σχετικά με τον τρόπο παραλληλισμού των διαδρομών σας AutoML, μπορείτε να επισκεφθείτε την τεκμηρίωση flaml για παράλληλες εργασίες Spark.
Παρακολούθηση με MLflow
Μπορείτε επίσης να χρησιμοποιήσετε την ενοποίηση Fabric MLflow για να καταγράψετε τα μετρικά, τις παραμέτρους και τα μετρικά των διερευνημένων διαδρομών.
import mlflow
mlflow.autolog()
with mlflow.start_run(nested=True):
automl.fit(dataframe=pandas_df, label='Bankrupt?', mlflow_exp_name = "automl_spark_demo")
# You can also provide a run_name pre-fix for the child runs
automl_experiment = flaml.AutoML()
automl_settings = {
"metric": "r2",
"task": "regression",
"use_spark": True,
"mlflow_exp_name": "test_doc",
"estimator_list": [
"lgbm",
"rf",
"xgboost",
"extra_tree",
"xgb_limitdepth",
], # catboost does not yet support mlflow autologging
}
with mlflow.start_run(run_name=f"automl_spark_trials"):
automl_experiment.fit(X_train=train_x, y_train=train_y, **automl_settings)
Υποστηριζόμενα μοντέλα
Το AutoML στο Fabric υποστηρίζει τα ακόλουθα μοντέλα:
Ταξινόμηση | Οπισθοδρόμηση | Πρόβλεψη χρονολογική σειράς |
---|---|---|
(PySpark) Αλγόριθμος ταξινόμησης δέντρου με ενίσχυση διαβάθμισης (GBT) | (PySpark) Επιταχυνόμενη παλινδρόμηση χρόνου αποτυχίας (AFT) | Arimax |
(PySpark) Γραμμικό SVM | (PySpark) Γενικευημένη γραμμική παλινδρόμηση | AutoARIMA |
(PySpark) Naive Bayes | (PySpark) Παλινδρόμηση δέντρου με ενίσχυση διαβάθμισης (GBT) | Average |
(Synapse) LightGBM | (PySpark) Γραμμική παλινδρόμηση | CatBoost |
CatBoost | (Synapse) LightGBM | Δέντρο αποφάσεων |
Δέντρο αποφάσεων | CatBoost | ΕκθετικόΣυνήθισμα |
Εξαιρετικά τυχαιοποιημένα δέντρα | Δέντρο αποφάσεων | Εξαιρετικά τυχαιοποιημένα δέντρα |
Αύξηση διαβάθμισης | Elastic Net | ForecastTCN |
K Πλησιέστεροι γείτονες | Εξαιρετικά τυχαιοποιημένα δέντρα | Αύξηση διαβάθμισης |
Ανοιχτό GBM | Αύξηση διαβάθμισης | Holt-Winters Εκθετική εξομάλυνση |
Γραμμικό SVC | K Πλησιέστεροι γείτονες | K Πλησιέστεροι γείτονες |
Λογιστική παλινδρόμηση | ΛΆΣΟ LARS | ΛΆΣΟ LARS |
Λογιστική παλινδρόμηση με κανονικοποίηση L1/L2 | Ανοιχτό GBM | Ανοιχτό GBM |
Naive Bayes | Λογιστική παλινδρόμηση με κανονικοποίηση L1/L2 | Αφελής |
Τυχαίο δάσος | Τυχαίο δάσος | Τροχιά |
Τυχαίο δάσος στο Spark | Τυχαίο δάσος στο Spark | Προφήτης |
Στοχαστική διαβαθμτική κάθοδος (SGD) | Στοχαστική διαβαθμτική κάθοδος (SGD) | Τυχαίο δάσος |
Υποστήριξη διανυσματικής ταξινόμησης (SVC) | XGBoost | SARIMAX |
XGboost | XGBoost με περιορισμένο βάθος | Εποχική προστασία |
XGBoost με περιορισμένο βάθος | Εποχικέςnaive | |
Μετασχηματισμός χρονικής συγχώνευσης συγχώνευσης | ||
XGBoost | ||
XGBoost για χρονολογική σειρά | ||
XGBoost με περιορισμένο βάθος για τη χρονολογική σειρά | ||
ElasticNet |
Απεικόνιση αποτελεσμάτων
Η flaml.visualization
λειτουργική μονάδα παρέχει βοηθητικές συναρτήσεις για σχεδίαση της διαδικασίας βελτιστοποίησης με χρήση της συνάρτησης Plotly. Αξιοποιώντας το Plotly, οι χρήστες μπορούν να εξερευνήσουν διαδραστικά τα αποτελέσματα του πειράματος AutoML. Για να χρησιμοποιήσετε αυτές τις συναρτήσεις σχεδίασης, καταχωρήστε το βελτιστοποιημένο flaml.AutoML
ή flaml.tune.tune.ExperimentAnalysis
το αντικείμενο σας ως είσοδο.
Μπορείτε να χρησιμοποιήσετε τις ακόλουθες συναρτήσεις στο σημειωματάριό σας:
plot_optimization_history
: Σχεδίαση ιστορικού βελτιστοποίησης για όλες τις δοκιμές στο πείραμα.plot_feature_importance
: Σχεδίαση σπουδαιότητας για κάθε δυνατότητα στο σύνολο δεδομένων.plot_parallel_coordinate
: Σχεδίαση των σχέσεων παραμέτρων υψηλής διάστασης στο πείραμα.plot_contour
: Σχεδιάστε τη σχέση παραμέτρου ως σχεδίαση περιγράμματος στο πείραμα.plot_edf
: Σχεδιάζει την αντικειμενική τιμή EDF (λειτουργία εμπειρικής κατανομής) του πειράματος.plot_timeline
: Σχεδίαση της λωρίδας χρόνου του πειράματος.plot_slice
: Σχεδίαση της σχέσης παραμέτρου ως σχεδίασης φέτας σε μια μελέτη.plot_param_importance
: Σχεδιάστε τη σημασία του υπερπαραμετέρου του πειράματος.