Previsione delle serie temporali con TensorFlow e tecniche di visualizzazione per eseguire previsioni oltre il periodo di convalida |  di Paula Maranon |  Febbraio 2024

 | Intelligenza-Artificiale

Come estendere le tue previsioni oltre il periodo di convalida

Immagine dell'autore

In questo articolo ti guiderò attraverso il processo di creazione di modelli di serie temporali utilizzando TensorFlow, un potente framework per la costruzione e l'addestramento di reti neurali. Ti mostrerò una varietà di architetture di rete neurale per la previsione delle serie temporali, che vanno da modelli semplici come SimpleRNN a quelli più complessi come LSTM. Inoltre, presenterò le tecniche di visualizzazione avanzate che ho utilizzato per effettuare e visualizzare previsioni oltre il periodo di convalida.

Ho utilizzato le seguenti librerie: TensorFlow con Keras per la creazione di reti neurali, Matplotlib per la visualizzazione, NumPy per le operazioni numeriche e Scikit-Learn per la preelaborazione dei dati.

import numpy as np
import tensorflow as tf
from matplotlib import pyplot as plt
from sklearn.preprocessing import MinMaxScaler

La preparazione dei dati è fondamentale per il successo di qualsiasi modello di machine learning. In questa sezione verranno eseguiti diversi passaggi per preparare i dati per il training e la convalida.

Separazione dei dati e dei passaggi temporali

Il primo passo è separare i passaggi temporali dai dati effettivi.

Per dati di serie temporali brevi (dati archiviati in un array): possiamo creare un array di passaggi temporali utilizzando 'np.arange()':

#For short time series data, data stored in an array, I'll do the following:
dummy_data = np.array((1, 2, 3,...))
time_step = np.arange(len(dummy_data))

Per set di dati più grandi archiviati in file (ad esempio file CSV): possiamo leggere i dati e i corrispondenti passaggi temporali dal file:

#For larger datasets stored in files, such as CSV files
import csv

time_step = ()
data = ()

with open("file.txt", "r", encoding="utf-8") as f:
csv_reader = csv.reader(f, delimiter=",")

# Skip the header
next(csv_reader)

# Skip lines with NUL characters
lines = (line for line in csv_reader if "\0" not in line)

# Iterate…

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *