Δημιουργήστε ακριβείς και ερμηνεύσιμες προβλέψεις
Σύμφωνα με το [2], Χρονικός μετασχηματιστής σύντηξης ξεπερνά όλα τα εξέχοντα μοντέλα Deep Learning για την πρόβλεψη χρονοσειρών.
Συμπεριλαμβανομένου ενός χαρακτηρισμένου Δέντρο ενίσχυσης κλίσης μοντέλο για δεδομένα πινάκων χρονοσειρών.
Αλλά τι είναι Χρονικός μετασχηματιστής σύντηξης (TFT)[3] και γιατί είναι τόσο ενδιαφέρον;
Σε αυτό το άρθρο, εξηγούμε εν συντομία τις καινοτομίες του Χρονικός μετασχηματιστής σύντηξης και να δημιουργήσετε ένα έργο από άκρο σε άκρο Πρόβλεψη Ζήτησης Ενέργειας. Συγκεκριμένα, θα καλύψουμε:
- Πώς να προετοιμάσουμε τα δεδομένα μας για τη μορφή TFT.
- Πώς να δημιουργήσετε, να εκπαιδεύσετε και να αξιολογήσετε το μοντέλο TFT.
- Πώς να λάβετε προβλέψεις για δεδομένα επικύρωσης και προβλέψεις εκτός δείγματος.
- Πώς να υπολογίσετε σημασίες χαρακτηριστικών, εποχιακά μοτίβα, και ευρωστία ακραίων συμβάντων χρησιμοποιώντας το ενσωματωμένο μοντέλο ερμηνεύσιμη προσοχή μηχανισμός.
Ας βουτήξουμε!
Για μια εις βάθος ανάλυση της αρχιτεκτονικής του Temporal Fusion Transformer, ελέγξτε το προηγούμενο άρθρο.
Tεμπορική Fχρήση Transformer (TFT) είναι ένα μοντέλο που βασίζεται σε μετασχηματιστή που αξιοποιεί την αυτοπροσοχή για να καταγράψει τη σύνθετη χρονική δυναμική πολλαπλών χρονικών ακολουθιών.
Το TFT υποστηρίζει:
- Πολλαπλές χρονοσειρές: Μπορούμε να εκπαιδεύσουμε ένα μοντέλο TFT σε χιλιάδες μονομεταβλητές ή πολυμεταβλητές χρονοσειρές.
- Πρόβλεψη πολλαπλών οριζόντων: Το μοντέλο εξάγει προβλέψεις πολλαπλών βημάτων για μία ή περισσότερες μεταβλητές στόχου — συμπεριλαμβανομένων των διαστημάτων πρόβλεψης.
- Ετερογενή χαρακτηριστικά: Το TFT υποστηρίζει πολλούς τύπους χαρακτηριστικών, συμπεριλαμβανομένων των χρονικών μεταβλητών και των στατικών εξωγενών μεταβλητών.
- Ερμηνεύσιμες προβλέψεις: Οι προβλέψεις μπορούν να ερμηνευθούν με όρους μεταβλητής σημασίας και εποχικότητας.
Ένα από αυτά τα χαρακτηριστικά είναι μοναδικό σε Χρονικός μετασχηματιστής σύντηξης. Θα το καλύψουμε αυτό στην επόμενη ενότητα.
Μεταξύ των αξιοσημείωτων μοντέλων χρονοσειρών DL (π.χ. Βαθεαρ[4]), το TFT ξεχωρίζει επειδή υποστηρίζει διάφορους τύπους λειτουργιών. Αυτά είναι:
- Χρονικά μεταβαλλόμενη γνωστός
- Χρονικά μεταβαλλόμενη άγνωστος
- Χρονικά αμετάβλητο πραγματικός
- Χρονικά αμετάβλητο κατηγορηματικός
Για παράδειγμα, φανταστείτε ότι έχουμε ένα περίπτωση πρόβλεψης πωλήσεων:
Ας πούμε ότι πρέπει να προβλέψουμε τις πωλήσεις 3 προϊόντων. ο num sales
είναι η μεταβλητή στόχος. ο CPI index
ή η number of visitors
are χρονικά μεταβαλλόμενη άγνωστη χαρακτηριστικά επειδή είναι γνωστά μόνο μέχρι το χρόνο πρόβλεψης. Ωστόσο, holidays
και special days
are χρονικά μεταβαλλόμενη γνωστή γεγονότα.
Η product id
is μια χρονικά αμετάβλητη (στατική) κατηγορική χαρακτηριστικό. Άλλα χαρακτηριστικά που είναι αριθμητικά και δεν εξαρτώνται από το χρόνο, όπως yearly_revenue
μπορούν να κατηγοριοποιηθούν ως χρονικά αμετάβλητο πραγματικό.
Προτού μεταβείτε στο έργο μας, θα δείξουμε πρώτα έναν μικρό οδηγό για το πώς να μετατρέψετε τα δεδομένα σας σε μορφή εκτεταμένης χρονοσειράς.
Σημείωση: Όλες οι εικόνες και οι εικόνες σε αυτό το άρθρο δημιουργούνται από τον συγγραφέα.
Για αυτό το σεμινάριο, χρησιμοποιούμε το TemporalFusionTransformer
μοντέλο από το PyTorch Forecasting βιβλιοθήκη και PyTorch Lightning:
pip install torch pytorch-lightning pytorch_forecasting
Η όλη διαδικασία περιλαμβάνει 3 πράγματα:
- Δημιουργήστε ένα πλαίσιο δεδομένων pandas με τα δεδομένα χρονοσειρών μας.
- Τυλίξτε το πλαίσιο δεδομένων μας σε ένα TimeSeriesDataset παράδειγμα.
- Περάστε μας TimeSeriesDataset παράδειγμα προς
TemporalFusionTransformer.
Η TimeSeriesDataset είναι πολύ χρήσιμο γιατί μας βοηθά να προσδιορίσουμε εάν οι λειτουργίες μεταβάλλονται χρονικά ή είναι στατικές. Επιπλέον, είναι η μόνη μορφή που TemporalFusionTransformer
δέχεται.
Ας δημιουργήσουμε ένα ελάχιστο σύνολο δεδομένων εκπαίδευσης για να δείξουμε πώς TimeSeriesDataset έργα:
Θα πρέπει να μορφοποιήσουμε τα δεδομένα μας με τον ακόλουθο τρόπο: Κάθε έγχρωμο πλαίσιο αντιπροσωπεύει μια διαφορετική χρονοσειρά, που αντιπροσωπεύεται από τη δική της group
αξία.
Η πιο σημαντική στήλη του πλαισίου δεδομένων μας είναι η time_idx
— καθορίζει τη σειρά των δειγμάτων. Εάν δεν λείπουν παρατηρήσεις, οι τιμές θα πρέπει να αυξηθούν κατά +1 για κάθε χρονοσειρά.
Στη συνέχεια, τυλίγουμε το πλαίσιο δεδομένων μας σε ένα TimeSeriesDataset παράδειγμα:
Όλα τα επιχειρήματα είναι αυτονόητα: Το max_encoder_length
ορίζει την περίοδο αναδρομής και max_prediction_length
καθορίζει πόσα σημεία δεδομένων θα προβλεφθούν. Στην περίπτωσή μας, κοιτάμε πίσω 3 χρονικά βήματα στο παρελθόν για να εξάγουμε 2 προβλέψεις.
Η TimeSeriesDataset Το παράδειγμα χρησιμεύει τώρα ως πρόγραμμα φόρτωσης δεδομένων. Ας εκτυπώσουμε μια παρτίδα και ας ελέγξουμε πώς θα περάσουν τα δεδομένα μας στο TFT:
Αυτή η παρτίδα περιέχει τις τιμές εκπαίδευσης [0,1]
από την πρώτη χρονοσειρά (group 0
) και τις τιμές δοκιμής[2,3,4]
. Εάν εκτελέσετε ξανά αυτόν τον κωδικό, θα λάβετε διαφορετικές τιμές επειδή τα δεδομένα ανακατεύονται από προεπιλογή.
Το έργο μας θα χρησιμοποιήσει το Electricity Load Diagrams20112014 [5] σύνολο δεδομένων από την UCI. Μπορείτε να κατεβάσετε το σημειωματάριο για αυτό το παράδειγμα εδώ:
Αυτό το σύνολο δεδομένων περιέχει τη χρήση ενέργειας (σε KWs) 370 πελατών/καταναλωτών με συχνότητα 15 λεπτών. Τα δεδομένα εκτείνονται σε 4 χρόνια (2011–2014).
Ορισμένοι καταναλωτές δημιουργήθηκαν μετά το 2011, επομένως η κατανάλωση ενέργειας αρχικά είναι μηδενική.
Κάνουμε προεπεξεργασία δεδομένων σύμφωνα με [3]:
- Συγκεντρώνουμε τη μεταβλητή-στόχο μας
power_usage
ανά ώρα. - Βρείτε την παλαιότερη ημερομηνία για κάθε χρονοσειρά όπου η ισχύς είναι μη μηδενική.
- Δημιουργήστε νέες δυνατότητες:
month
,day
,hour
καιday_of_week
. - Επιλέξτε όλες τις ημέρες μεταξύ
2014–01–01
και2014–09–07
.
Ας αρχίσουμε:
Λήψη δεδομένων
wget https://archive.ics.uci.edu/ml/machine-learning-databases/00321/LD2011_2014.txt.zip
!ανοίγω φερμουάρ LD2011_2014.txt.zip
Προεπεξεργασία δεδομένων
Κάθε στήλη αντιπροσωπεύει έναν καταναλωτή. Το πιο αρχικό power_usage
οι τιμές είναι 0.
Στη συνέχεια, συγκεντρώνουμε σε ωριαία δεδομένα. Λόγω του μεγέθους και της πολυπλοκότητας του μοντέλου, εκπαιδεύουμε το μοντέλο μας σε 5 καταναλωτές μόνο (για αυτούς με μη μηδενικές τιμές).
Τώρα, προετοιμάζουμε το σύνολο δεδομένων μας για το TimeSeriesDataset μορφή. Παρατηρήστε ότι κάθε στήλη αντιπροσωπεύει μια διαφορετική χρονοσειρά. Ως εκ τούτου, «λιώνουμε» το πλαίσιο δεδομένων μας, έτσι ώστε όλες οι χρονοσειρές να στοιβάζονται κατακόρυφα αντί για οριζόντια. Στην πορεία, δημιουργούμε τα νέα μας χαρακτηριστικά.
Καλείται το τελικό προεπεξεργασμένο πλαίσιο δεδομένων time_df
. Ας εκτυπώσουμε το περιεχόμενό του:
Η time_df
είναι τώρα στην κατάλληλη μορφή για το TimeSeriesDataset. Όπως έχετε μαντέψει μέχρι τώρα, δεδομένου ότι η ευαισθησία είναι ωριαία, το hours_from_start
μεταβλητή θα είναι η δείκτης χρόνου.
Διερευνητική Ανάλυση Δεδομένων
Η επιλογή 5 καταναλωτών/χρονοσειρά δεν είναι τυχαία. ο power usage
κάθε χρονοσειράς έχει διαφορετικές ιδιότητες, όπως η μέση τιμή:
time_df[['consumer_id','power_usage']].groupby('consumer_id').mean()
Ας σχεδιάσουμε τον πρώτο μήνα κάθε χρονοσειράς:
Δεν υπάρχει αξιοσημείωτη τάση, αλλά κάθε χρονοσειρά έχει ελαφρώς διαφορετική εποχικότητα και εύρος. Μπορούμε να πειραματιστούμε περαιτέρω και να ελέγξουμε τη σταθερότητα, τις αποσυνθέσεις σημάτων και ούτω καθεξής, αλλά στην περίπτωσή μας, εστιάζουμε μόνο στην πτυχή της κατασκευής μοντέλων.
Επίσης, παρατηρήστε ότι άλλες μέθοδοι πρόβλεψης χρονοσειρών όπως ΑΡΙΜΑ πρέπει να ικανοποιεί μερικές απαιτήσεις (για παράδειγμα, η χρονοσειρά πρέπει πρώτα να γίνει σταθερή.) Με το TFT, μπορούμε να αφήσουμε τα δεδομένα μας ως έχουν.
Δημιουργήστε DataLoaders
Σε αυτό το βήμα, περνάμε το δικό μας time_df
στο TimeSeriesDataSet μορφή που είναι εξαιρετικά χρήσιμη γιατί:
- Μας γλιτώνει από το να γράψουμε το δικό μας Dataloader.
- Μπορούμε να καθορίσουμε πώς το TFT θα χειρίζεται τις δυνατότητες του συνόλου δεδομένων.
- Μπορούμε να κανονικοποιήσουμε το σύνολο δεδομένων μας με ευκολία. Στην περίπτωσή μας, η κανονικοποίηση είναι υποχρεωτική επειδή όλες οι χρονικές ακολουθίες διαφέρουν ως προς το μέγεθος. Έτσι, χρησιμοποιούμε το GroupNormalizer για την κανονικοποίηση κάθε χρονοσειράς ξεχωριστά.
Το μοντέλο μας χρησιμοποιεί ένα παράθυρο ανασκόπησης μιας εβδομάδας (7*24) για να προβλέψει τη χρήση ενέργειας των επόμενων 24 ωρών.
Επίσης, παρατηρήστε ότι το hours_from_start
είναι τόσο ο δείκτης χρόνου όσο και ένα χαρακτηριστικό που μεταβάλλεται χρονικά. ο power_usage
είναι η μεταβλητή στόχος μας. Για λόγους επίδειξης, το σετ επικύρωσης είναι η τελευταία ημέρα:
Μοντέλο βάσης
Στη συνέχεια, το βήμα που ξεχνάνε σχεδόν όλοι: Ένα βασικό μοντέλο. Ειδικά στην πρόβλεψη χρονοσειρών, θα εκπλαγείτε με το πόσο συχνά ένας αφελής προγνωστικός ξεπερνάει ακόμη και ένα πιο φανταχτερό μοντέλο!
Ως απλή γραμμή βάσης, προβλέπουμε την καμπύλη χρήσης ενέργειας της προηγούμενης ημέρας:
Εκπαίδευση του Μοντέλου Μετασχηματιστή Χρονικής Σύντηξης
Μπορούμε να εκπαιδεύσουμε το μοντέλο TFT χρησιμοποιώντας τα γνωστά Προπονητής διεπαφή από PyTorch Lightning.
Προσέξτε τα ακόλουθα πράγματα:
- Χρησιμοποιούμε το Πρόωρη διακοπή επανάκληση για παρακολούθηση της απώλειας επικύρωσης.
- Χρησιμοποιούμε Ταμπλό για να καταγράψετε τις μετρήσεις εκπαίδευσης και επικύρωσης.
- Το μοντέλο μας χρησιμοποιεί Ποσοστιαία Απώλεια — ένας ειδικός τύπος απώλειας που μας βοηθά να εξάγουμε τα διαστήματα πρόβλεψης. Για περισσότερα σχετικά με τη συνάρτηση Quantile Loss, δείτε αυτό το άρθρο.
- Χρησιμοποιούμε 4 κεφάλια προσοχής, όπως το πρωτότυπο χαρτί.
Τώρα είμαστε έτοιμοι να κατασκευάσουμε και να εκπαιδεύσουμε το μοντέλο μας:
Αυτό είναι! Μετά από 6 εποχές, το EarlyStopping ξεκινά και διακόπτει την προπόνηση.
Φορτώστε και αποθηκεύστε το καλύτερο μοντέλο
Μην ξεχάσετε να αποθηκεύσετε το μοντέλο σας. Αν και μπορούμε να το τουρσί, η πιο ασφαλής επιλογή είναι να σώσουμε απευθείας την καλύτερη εποχή:
!zip -r model.zip lightning_logs/lightning_logs/version_1/*
Για να φορτώσετε ξανά το μοντέλο, αποσυμπιέστε μοντέλο.zip και εκτελέστε τα ακόλουθα — απλώς θυμηθείτε την καλύτερη διαδρομή μοντέλου:
Ελέγξτε το Tensorboard
Ρίξτε μια πιο προσεκτική ματιά στις καμπύλες εκπαίδευσης και επικύρωσης με το Tensorboard:
Αξιολόγηση μοντέλου
Λάβετε προβλέψεις για το σύνολο επικύρωσης και υπολογίστε τον μέσο όρο P50 (μέσος όρος της ποσότητας) off:
Οι τελευταίες 2 χρονοσειρές έχουν λίγο μεγαλύτερες απώλειες επειδή το σχετικό τους μέγεθος είναι επίσης υψηλό.
Προβλέψεις γραφικής παράστασης για δεδομένα επικύρωσης
Αν περάσουμε το mode=raw
σχετικά με την προλέγω() μέθοδο, λαμβάνουμε περισσότερες πληροφορίες, συμπεριλαμβανομένων προβλέψεων και για τα επτά ποσοστά. Έχουμε επίσης πρόσβαση στις τιμές προσοχής (περισσότερα για αυτό αργότερα).
Ρίξτε μια πιο προσεκτική ματιά στο raw_predictions
μεταβλητή:
Χρησιμοποιούμε το plot_prediction() να δημιουργήσουμε τα οικόπεδά μας. Φυσικά, θα μπορούσατε να φτιάξετε τη δική σας προσαρμοσμένη πλοκή — το plot_prediction() έχει το επιπλέον πλεονέκτημα της προσθήκης των τιμών προσοχής.
Σημείωση: Το μοντέλο μας προβλέπει τα επόμενα 24 σημεία δεδομένων με μία κίνηση. Αυτό δεν είναι ένα κυλιόμενο σενάριο πρόβλεψης όπου ένα μοντέλο προβλέπει α ενιαίας εκτιμήστε κάθε φορά και «συρράψτε» όλες τις προβλέψεις μαζί.
Δημιουργούμε ένα οικόπεδο για κάθε καταναλωτή (5 συνολικά).
Τα αποτελέσματα είναι αρκετά εντυπωσιακά.
Τα Χρονικός μετασχηματιστής σύντηξης μοντέλο μπόρεσε να αποτυπώσει τη συμπεριφορά και των 5 χρονοσειρών, τόσο σε εποχικότητα όσο και σε μέγεθος!
Σημειώστε επίσης ότι:
- Δεν πραγματοποιήσαμε κανένα συντονισμό υπερπαραμέτρων.
- Δεν εφαρμόσαμε καμία φανταχτερή τεχνική μηχανικής χαρακτηριστικών.
Σε μια επόμενη ενότητα, δείχνουμε πώς να βελτιώσουμε το μοντέλο μας με βελτιστοποίηση υπερπαραμέτρων.
Προβλέψεις πλοκής για μια συγκεκριμένη χρονική σειρά
Προηγουμένως, σχεδιάζαμε προβλέψεις για τα δεδομένα επικύρωσης χρησιμοποιώντας το idx
όρισμα, το οποίο επαναλαμβάνεται σε όλες τις χρονικές σειρές στο σύνολο δεδομένων μας. Μπορούμε να είμαστε πιο συγκεκριμένοι και να βγάζουμε προβλέψεις σε μια συγκεκριμένη χρονοσειρά:
In Σχήμα 7, σχεδιάζουμε την επόμενη μέρα MT_004 καταναλωτή για δείκτη χρόνου=26512.
Θυμηθείτε, τη στήλη χρονικής ευρετηρίασης hours_from_start
ξεκινάει από το 26304 και μπορούμε να πάρουμε προβλέψεις από το 26388 και μετά (γιατί ρυθμίσαμε νωρίτερα min_encoder_length=max_encoder_length // 2
που ισούται 26304 + 168//2=26388
Προβλέψεις εκτός δείγματος
Ας δημιουργήσουμε προβλέψεις εκτός δείγματος, πέρα από το τελικό σημείο δεδομένων των δεδομένων επικύρωσης — που είναι 2014–09–07 23:00:00
Το μόνο που έχουμε να κάνουμε είναι να δημιουργήσουμε ένα νέο πλαίσιο δεδομένων που περιέχει:
- Ο αριθμός των
N
=max_encoder_length
προηγούμενες ημερομηνίες, που λειτουργούν ως το παράθυρο αναδρομής — το δεδομένα κωδικοποιητή στην ορολογία TFT. - Οι μελλοντικές ημερομηνίες μεγέθους
max_prediction_length
για το οποίο θέλουμε να υπολογίσουμε τις προβλέψεις μας — το δεδομένα αποκωδικοποιητή.
Μπορούμε να δημιουργήσουμε προβλέψεις και για τις 5 χρονοσειρές μας ή μόνο για μία. Εικόνα 7 δείχνει τις προβλέψεις εκτός δείγματος για τους καταναλωτές MT_002:
Η ακριβής πρόβλεψη είναι ένα πράγμα, αλλά η επεξήγηση έχει επίσης μεγάλη σημασία στις μέρες μας.
Και είναι ακόμα χειρότερο για τα μοντέλα Deep Learning, τα οποία θεωρούνται μαύρα κουτιά. Μέθοδοι όπως ΑΣΒΕΣΤΟΣ και ΣΧΗΜΑ μπορεί να παρέχει επεξήγηση (σε κάποιο βαθμό), αλλά δεν λειτουργεί καλά για χρονοσειρές. Επιπλέον, είναι εξωτερικές post-hoc μέθοδοι και δεν συνδέονται με ένα συγκεκριμένο μοντέλο.
Χρονικός μετασχηματιστής σύντηξης παρέχει τρεις τύπους ερμηνείας:
- Εποχιακά: Το TFT αξιοποιεί το μυθιστόρημά του Ερμηνεύσιμη Multi-Head Attention μηχανισμός για τον υπολογισμό της σημασίας των βημάτων του παρελθόντος χρόνου.
- Από πλευράς χαρακτηριστικών: Το TFT το αξιοποιεί Δίκτυο επιλογής μεταβλητής μονάδα για τον υπολογισμό της σημασίας κάθε χαρακτηριστικού.
- Ακραία ευρωστία συμβάντων: Μπορούμε να διερευνήσουμε πώς συμπεριφέρονται οι χρονοσειρές κατά τη διάρκεια σπάνιων γεγονότων
Εάν θέλετε να μάθετε σε βάθος για την εσωτερική λειτουργία του Ερμηνεύσιμη Multi-Head Attention και Δίκτυο επιλογής μεταβλητής, ελέγξτε το προηγούμενο άρθρο μου.
Ερμηνευτικότητα από άποψη εποχικότητας
Το TFT διερευνά τα βάρη προσοχής για να κατανοήσει τα χρονικά μοτίβα στα προηγούμενα χρονικά βήματα.
Οι γκρίζες γραμμές σε όλα τα προηγούμενα οικόπεδα αντιπροσωπεύουν τις βαθμολογίες προσοχής. Κοιτάξτε ξανά αυτές τις πλοκές — παρατηρείτε τίποτα; Εικόνα 8 δείχνει τα ευρήματα του Εικόνα 7 και επίσης λαμβάνει υπόψη τις βαθμολογίες προσοχής:
Οι βαθμολογίες προσοχής αποκαλύπτουν πόσο επηρεάζουν αυτά τα χρονικά βήματα όταν το μοντέλο εξάγει την πρόβλεψή του. Οι μικρές κορυφές αντικατοπτρίζουν την ημερήσια εποχικότητα, ενώ η υψηλότερη κορυφή προς το τέλος πιθανώς υποδηλώνει την εβδομαδιαία εποχικότητα.
Εάν βάλουμε τον μέσο όρο των καμπυλών προσοχής σε όλα τα χρονικά βήματα και τις χρονοσειρές (όχι μόνο τις 5 που χρησιμοποιήσαμε σε αυτό το σεμινάριο), θα λάβουμε το σχήμα που μοιάζει με συμμετρικό Εικόνα 9 από το χαρτί TFT:
Ερώτηση: Τι καλό είναι αυτό; Δεν μπορούμε απλά να υπολογίσουμε τα μοτίβα εποχικότητας με μεθόδους όπως διαγράμματα ACF, αποσύνθεση σήματος χρόνου κ.λπ.;
Απάντηση: Αληθής. Ωστόσο, η μελέτη των βαρών προσοχής του TFT έχει επιπλέον πλεονεκτήματα:
- Μπορούμε να επιβεβαιώσουμε ότι το μοντέλο μας αποτυπώνει τη φαινομενική εποχιακή δυναμική των ακολουθιών μας.
- Το μοντέλο μας μπορεί επίσης να αποκαλύψει κρυφά μοτίβα επειδή τα βάρη προσοχής των τρεχόντων παραθύρων εισόδου λαμβάνουν υπόψη όλες τις προηγούμενες εισόδους.
- Η γραφική παράσταση βαρών προσοχής δεν είναι η ίδια με μια γραφική παράσταση αυτοσυσχέτισης: Η γραφική παράσταση αυτοσυσχέτισης αναφέρεται σε μια συγκεκριμένη ακολουθία, ενώ τα βάρη προσοχής εδώ εστιάζουν στον αντίκτυπο κάθε χρονικού βήματος εξετάζοντας όλες τις συμμεταβλητές και τις χρονικές σειρές.
Ερμηνευσιμότητα από άποψη χαρακτηριστικών
Η Δίκτυο επιλογής μεταβλητής συστατικό του TFT μπορεί εύκολα να εκτιμήσει το σημασία χαρακτηριστικών:
In Εικόνα 10, παρατηρούμε τα εξής:
- Η
hour
καιday_of_week
έχουν ισχυρές βαθμολογίες, τόσο ως προηγούμενες παρατηρήσεις όσο και ως μελλοντικές συμμεταβλητές. Το σημείο αναφοράς στο αρχικό έγγραφο συμμερίζεται το ίδιο συμπέρασμα. - Η
power_usage
είναι προφανώς η πιο επιδραστική παρατηρούμενη συμμεταβλητή. - Η
consumer_id
δεν είναι πολύ σημαντικό εδώ επειδή χρησιμοποιούμε μόνο 5 καταναλωτές. Στο έγγραφο TFT, όπου οι συγγραφείς χρησιμοποιούν και τους 370 καταναλωτές, αυτή η μεταβλητή είναι πιο σημαντική.
Σημείωση: Εάν η στατική μεταβλητή ομαδοποίησης δεν είναι σημαντική, είναι πολύ πιθανό το σύνολο δεδομένων σας να μπορεί επίσης να μοντελοποιηθεί εξίσου καλά από ένα μοντέλο διανομής (όπως το ARIMA).
Ανίχνευση ακραίων συμβάντων
Οι χρονοσειρές είναι διαβόητες επειδή είναι ευαίσθητες σε ξαφνικές αλλαγές στις ιδιότητές τους κατά τη διάρκεια σπάνιων γεγονότων (αναφέρονται επίσης ως σοκ).
Ακόμη χειρότερα, αυτά τα γεγονότα είναι πολύ άπιαστα. Φανταστείτε εάν η μεταβλητή-στόχος σας γίνεται ασταθής για μια σύντομη περίοδο επειδή μια συμμεταβλητή αλλάζει σιωπηλά τη συμπεριφορά:
Είναι κάποιος τυχαίος θόρυβος ή ένα κρυφό επίμονο μοτίβο που ξεφεύγει από το μοντέλο μας;
Με το TFT, μπορούμε να αναλύσουμε την ευρωστία κάθε μεμονωμένου χαρακτηριστικού σε όλο το εύρος τιμών του. Δυστυχώς, το τρέχον σύνολο δεδομένων δεν παρουσιάζει αστάθεια ή σπάνια συμβάντα — αυτά είναι πιο πιθανό να βρεθούν σε οικονομικά στοιχεία, δεδομένα πωλήσεων και ούτω καθεξής. Ωστόσο, θα δείξουμε πώς να τα υπολογίσουμε:
Ορισμένα χαρακτηριστικά δεν έχουν όλες τις τιμές τους στο σύνολο δεδομένων επικύρωσης, επομένως δείχνουμε μόνο το hour
και consumer_id
:
Και στα δύο σχήματα, τα αποτελέσματα είναι ενθαρρυντικά. Σε Εικόνα 12, παρατηρούμε ότι ο καταναλωτής MT_004 έχει ελαφρώς χαμηλότερη απόδοση σε σύγκριση με άλλους καταναλωτές. Θα μπορούσαμε να το επαληθεύσουμε εάν κανονικοποιήσουμε την απώλεια P50 κάθε καταναλωτή με τη μέση κατανάλωση ενέργειας που υπολογίσαμε προηγουμένως.
Οι γκρι γραμμές υποδηλώνουν την κατανομή κάθε μεταβλητής. Ένα πράγμα που κάνω πάντα είναι να βρίσκω ποιες τιμές έχουν χαμηλή συχνότητα. Στη συνέχεια, ελέγχω την απόδοση του μοντέλου σε αυτές τις περιοχές. Ως εκ τούτου, μπορείτε εύκολα να εντοπίσετε εάν το μοντέλο σας καταγράφει τη συμπεριφορά σπάνιων γεγονότων.
Γενικά, μπορείτε να χρησιμοποιήσετε αυτήν τη δυνατότητα TFT για να ελέγξετε το μοντέλο σας για αδυναμίες και να προχωρήσετε σε περαιτέρω διερεύνηση.
Μπορούμε να χρησιμοποιήσουμε απρόσκοπτα Χρονικός μετασχηματιστής σύντηξης με Οπτούνα για να εκτελέσετε συντονισμό υπερπαραμέτρων:
Το πρόβλημα είναι ότι εφόσον το TFT είναι ένα μοντέλο που βασίζεται σε Transformer, θα χρειαστείτε σημαντικούς πόρους υλικού!
Χρονικός μετασχηματιστής σύντηξης είναι αναμφίβολα ένα ορόσημο για την κοινότητα Time-Series.
Όχι μόνο το μοντέλο επιτυγχάνει αποτελέσματα SOTA, αλλά παρέχει επίσης ένα πλαίσιο για την ερμηνευσιμότητα των προβλέψεων. Το μοντέλο είναι επίσης διαθέσιμο στο Βέλη βιβλιοθήκη python, η οποία βασίζεται στη βιβλιοθήκη PyTorch Forecasting.
Τέλος, αν είστε περίεργοι να μάθετε για την αρχιτεκτονική του Χρονικός μετασχηματιστής σύντηξης αναλυτικά, ελέγξτε το συνοδευτικό άρθρο στο πρωτότυπο χαρτί.
Temporal Fusion Transformer: Time Series Forecasting with Deep Learning — Πλήρης Εκμάθηση Αναδημοσίευση από την πηγή https://towardsdatascience.com/temporal-fusion-transformer-time-series-forecasting-with-deep-learning-complete-tutorial-d32c1e51cd91? rss—-7f60cf5620c9—4 μέσω https://towardsdatascience.com/feed
Si al principi no tens èxit, aleshores el paracaigudisme no és per a tu.
->
- Bitcoin
- bizbuildermike
- blockchain
- συμμόρφωση με το blockchain
- blockchain συνέδριο
- Σύμβουλοι Blockchain
- coinbase
- Coingenius
- Ομοφωνία
- crypto συνέδριο
- εξόρυξη κρυπτογράφησης
- cryptocurrency
- Αποκεντρωμένη
- Defi
- Ψηφιακά περιουσιακά στοιχεία
- ethereum
- μάθηση μηχανής
- μη εύφλεκτο διακριτικό
- Πλάτων
- πλάτων αι
- Πληροφορία δεδομένων Plato
- Πλανοσάτσας
- Πλάτωνα δεδομένα
- platogaming
- Πολύγωνο
- απόδειξη συμμετοχής
- W3
- zephyrnet