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


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: Σχεδιάστε τη σημασία του υπερπαραμετέρου του πειράματος.