Πρόβλεψη χρονοσειρών πολλαπλών μεταβλητών με BQML - KDnuggets

Πρόβλεψη χρονοσειρών πολλαπλών μεταβλητών με BQML – KDnuggets

Κόμβος πηγής: 2796796

Πρόβλεψη χρονοσειρών πολλαπλών μεταβλητών με BQML
Εικόνα από Pexels
 

Τον περασμένο χειμώνα, έκανα μια παρουσίαση με θέμα "Πιο προβλέψιμο μοντέλο χρονοσειρών με BQML'στο GDG DevFest Tashkent 2022 στην Τασκένδη, την πρωτεύουσα του Ουζμπεκιστάν.

Επρόκειτο να μοιραστώ μέρος του υλικού και του κώδικα μετά το DevFest που χρησιμοποίησα στην παρουσίαση, αλλά πέρασε ο καιρός και έχουν κυκλοφορήσει νέες δυνατότητες στο BQML που επικαλύπτουν μέρος του περιεχομένου.

Επομένως, θα αναφέρω εν συντομία τις νέες δυνατότητες και ορισμένα από τα πράγματα που εξακολουθούν να ισχύουν.

Δεδομένα χρονοσειρών χρησιμοποιείται από πολλούς οργανισμούς για διάφορους σκοπούς και είναι σημαντικό να σημειωθεί ότι «προγνωστική αναλυτικήs” έχει να κάνει με το “μέλλον” στο χρόνο. Η ανάλυση πρόβλεψης χρονοσειρών έχει χρησιμοποιηθεί βραχυπρόθεσμα, μεσοπρόθεσμα και μακροπρόθεσμα, και ενώ έχει πολλές ανακρίβειες και κινδύνους, βελτιώνεται επίσης σταθερά.

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

Εάν χρησιμοποιείτε Google BigQuery για διαχείριση δεδομένων, μπορείτε να χρησιμοποιήσετε BQML (BigQuery ML) για να εφαρμόσετε αλγόριθμους μηχανικής εκμάθησης στα δεδομένα σας με απλό, εύκολο και γρήγορο τρόπο. Πολλοί άνθρωποι χρησιμοποιούν το BigQuery για να επεξεργαστούν πολλά δεδομένα και πολλά από αυτά τα δεδομένα είναι συχνά δεδομένα χρονοσειρών. Και Η BQML υποστηρίζει επίσης μοντέλα χρονοσειρών.

Η βάση του μοντέλου χρονοσειρών που υποστηρίζεται επί του παρόντος από την BQML είναι η Αυτόματη παλινδρόμηση ενσωματωμένος κινούμενος μέσος όρος (ARIMA) μοντέλο. Το μοντέλο ARIMA προβλέπει χρησιμοποιώντας μόνο υπάρχοντα δεδομένα χρονοσειρών και είναι γνωστό ότι έχει καλή απόδοση βραχυπρόθεσμης πρόβλεψης και δεδομένου ότι συνδυάζει AR και MA, είναι ένα δημοφιλές μοντέλο που μπορεί να καλύψει ένα ευρύ φάσμα μοντέλων χρονοσειρών.

Ωστόσο, αυτό το μοντέλο είναι γενικά υπολογιστικά εντατικό και δεδομένου ότι χρησιμοποιεί δεδομένα χρονοσειρών μόνο με κανονικότητα, είναι δύσκολο να χρησιμοποιηθεί σε περιπτώσεις με τάσεις ή εποχικότητα. Επομένως, ARIMA_PLUS στο BQML περιλαμβάνει πολλές πρόσθετες δυνατότητες ως επιλογές. Μπορείτε να προσθέσετε αποσύνθεση χρονοσειρών, παράγοντες εποχικότητας, αιχμές και βυθίσεις, αλλαγές συντελεστών και πολλά άλλα στο μοντέλο σας ή μπορείτε να τα διαβάσετε ξεχωριστά και να προσαρμόσετε χειροκίνητα το μοντέλο. Μου αρέσει επίσης προσωπικά το γεγονός ότι μπορείτε να προσαρμόζετε την περιοδικότητα ενσωματώνοντας αυτόματα επιλογές διακοπών, κάτι που είναι ένα από τα πλεονεκτήματα της χρήσης μιας πλατφόρμας που δεν απαιτεί από εσάς να προσθέτετε μη αυτόματα πληροφορίες σχετικά με ημερομηνίες.

 

Πρόβλεψη χρονοσειρών πολλαπλών μεταβλητών με BQML
Δομή του ARIMA_PLUS (από Εγχειρίδιο BQML)
 

Μπορείτε να ανατρέξετε σε αυτό σελίδα Για περισσότερες πληροφορίες.

Ωστόσο, όταν πρόκειται για εφαρμογές πραγματικού κόσμου, η πρόβλεψη χρονοσειρών δεν είναι τόσο απλή. Φυσικά, καταφέραμε να εντοπίσουμε πολλούς κύκλους και να προσθέσουμε παρεμβάσεις σε πολλαπλές χρονοσειρές με το ARIMA_PLUS, αλλά υπάρχουν πολλοί εξωτερικοί παράγοντες που σχετίζονται με τα δεδομένα χρονοσειρών και μόνο πολύ λίγα συμβάντα συμβαίνουν μεμονωμένα. Η σταθερότητα μπορεί να είναι δύσκολο να βρεθεί στα δεδομένα χρονοσειρών.

Στην αρχική παρουσίαση, εξέτασα πώς να αντιμετωπίσω αυτά τα δεδομένα χρονοσειρών του πραγματικού κόσμου για τη δημιουργία μοντέλου πρόβλεψης αποσυνθέτουν αυτές τις χρονοσειρές, καθαρίστε τα αποσυντιθέμενα δεδομένα, εισάγετέ τα στην Python και, στη συνέχεια Συνδυάστε το με άλλες μεταβλητές για να δημιουργήσετε μια συνάρτηση πολυμεταβλητής χρονοσειράς, να εκτιμήσετε την αιτιότητα και να την ενσωματώσετε σε ένα μοντέλο πρόβλεψης και να εκτιμήσετε τον βαθμό στον οποίο το αποτέλεσμα ποικίλλει ανάλογα με τις αλλαγές στα γεγονότα.

Και τους τελευταίους μόνο μήνες, μια νέα δυνατότητα για τη δημιουργία συναρτήσεων πολυμεταβλητών χρονοσειρών με εξωτερικές μεταβλητές(ARIMA_PLUS_XREG, XREG παρακάτω) έχει γίνει ένα ξεκάθαρο χαρακτηριστικό στο BQML.

Μπορείτε να διαβάσετε τα πάντα για αυτό εδώ(είναι σε προεπισκόπηση από τον Ιούλιο του 2023, αλλά υποθέτω ότι θα είναι διαθέσιμο αργότερα φέτος).

κάνω αίτηση το επίσημο σεμινάριο για να δούμε πώς συγκρίνεται με ένα παραδοσιακό μοντέλο μονομεταβλητής χρονοσειράς και μπορούμε να δούμε πώς λειτουργεί.

Τα βήματα είναι τα ίδια όπως στο tutorial, επομένως δεν θα τα επαναλάβω, αλλά εδώ είναι τα δύο μοντέλα που δημιούργησα. Πρώτα, δημιούργησα ένα παραδοσιακό ARIMA_PLUS μοντέλο και μετά ένα XREG μοντέλο χρησιμοποιώντας τα ίδια δεδομένα αλλά προσθέτοντας τη θερμοκρασία και την ταχύτητα του ανέμου εκείνη τη στιγμή.

# ARIMA_PLUS

# ARIMA_PLUS
CREATE OR REPLACE MODEL test_dt_us.seattle_pm25_plus_model
OPTIONS ( MODEL_TYPE = 'ARIMA_PLUS', time_series_timestamp_col = 'date', time_series_data_col = 'pm25') AS
SELECT date, pm25
FROM test_dt_us.seattle_air_quality_daily
WHERE date BETWEEN DATE('2012-01-01') AND DATE('2020-12-31')
#ARIMA_PLUS_XREG
CREATE OR REPLACE MODEL test_dt_us.seattle_pm25_xreg_model OPTIONS ( MODEL_TYPE = 'ARIMA_PLUS_XREG', time_series_timestamp_col = 'date', time_series_data_col = 'pm25') AS
SELECT date, pm25, temperature, wind_speed
FROM test_dt_us.seattle_air_quality_daily
WHERE date BETWEEN DATE('2012-01-01') AND DATE('2020-12-31')

 

Ένα μοντέλο που χρησιμοποιεί αυτά τα πολλαπλά δεδομένα θα μοιάζει κάπως έτσι

 

Πρόβλεψη χρονοσειρών πολλαπλών μεταβλητών με BQML
Δομή ARIMA_PLUS_XREG (από Εγχειρίδιο BQML)
 

Δύο μοντέλα συγκρίνονται με το ML.Evaluate.

SELECT * FROM ML.EVALUATE ( MODEL test_dt_us.seattle_pm25_plus_model, ( SELECT date, pm25 FROM test_dt_us.seattle_air_quality_daily WHERE date > DATE('2020-12-31') ))
SELECT * FROM ML.EVALUATE ( MODEL test_dt_us.seattle_pm25_xreg_model, ( SELECT date, pm25, temperature, wind_speed FROM test_dt_us.seattle_air_quality_daily WHERE date > DATE('2020-12-31') ), STRUCT( TRUE AS perform_aggregation, 30 AS horizon))

 

Τα αποτελέσματα είναι παρακάτω.

ARIMA_PLUS

 

Πρόβλεψη χρονοσειρών πολλαπλών μεταβλητών με BQML
 

ARIMA_PLUS_XREG

 

Πρόβλεψη χρονοσειρών πολλαπλών μεταβλητών με BQML
 

Μπορείτε να δείτε ότι το Το μοντέλο XREG είναι μπροστά σε βασικές μετρήσεις απόδοσης όπως MAE, MSE και MAPE. (Προφανώς, αυτή δεν είναι η τέλεια λύση, εξαρτάται από τα δεδομένα, και μπορούμε απλώς να πούμε ότι έχουμε ένα άλλο χρήσιμο εργαλείο.)

Η ανάλυση πολυμεταβλητών χρονοσειρών είναι μια απαραίτητη επιλογή σε πολλές περιπτώσεις, αλλά συχνά είναι δύσκολο να εφαρμοστεί για διάφορους λόγους. Τώρα, μπορούμε να το χρησιμοποιήσουμε εάν οι λόγοι βρίσκονται σε βήματα δεδομένων και ανάλυσης. Φαίνεται ότι έχουμε μια καλή επιλογή για αυτό, επομένως είναι καλό να το γνωρίζουμε και ελπίζουμε ότι θα είναι χρήσιμο σε πολλές περιπτώσεις.
 
 
JeongMin Kwon είναι ανεξάρτητος ανώτερος επιστήμονας δεδομένων με 10+ χρόνια πρακτικής εμπειρίας αξιοποιώντας μοντέλα μηχανικής μάθησης και εξόρυξη δεδομένων.
 

Σφραγίδα ώρας:

Περισσότερα από KDnuggets