TS | Automatizza la previsione delle serie temporali con Auto-TS

Contenuti

“La previsione è molto difficile, soprattutto se si tratta del futuro”.

qualsiasi idea dopo aver letto la bella citazione sopra. Ho spiegato diverse librerie automatizzate per automatizzare l'apprendimento automatico e i compiti di PNL nei miei articoli precedenti. Allo stesso modo, in questo articolo, Spiegherò "Come automatizzare la previsione delle serie temporali utilizzando Auto-TS".

Auto-TS fa parte di AutoML che automatizza alcuni dei componenti del processo di apprendimento automatico. Questo automatizza le librerie e aiuta i non esperti a formare un modello di apprendimento automatico di base senza avere molte conoscenze sul campo. Qui In questo articolo, Discuterò come automatizzare l'implementazione di un modello di previsione delle serie temporali utilizzando la libreria Auto-TS.

Cos'è Auto-TS?

È una libreria Python open source che viene fondamentalmente utilizzata per automatizzare la previsione delle serie temporali. Addestrerà automaticamente più modelli di serie temporali utilizzando una singola riga di codice, che ci aiuterà a scegliere il migliore per la nostra dichiarazione del problema.

Nella libreria Python open source, Auto-TS, auto-ts.Auto_TimeSeries () è la funzione principale che chiamerai con i dati del tuo treno. Dopo, possiamo scegliere che tipo di modelli vuoi, come modelli basati sulla statistica, ml o FB. También podemos ajustar los parametri que seleccionarán automáticamente el mejor modelo en función del parámetro de puntuación en el que queremos que se base. Restituirà il modello migliore e un dizionario contenente le previsioni per il numero di Forecast_periods che hai menzionato (predefinito = 2).

Funzionalità della libreria Auto-TS:

  • Trova il modello di previsione delle serie temporali ottimale ottimizzando la programmazione genetica.
  • Addestra modelli ingenui, statistiche, de aprendizaje automático y de apprendimento profondo, con tutte le possibili configurazioni di iperparametri e cross-validation.
  • Esegue trasformazioni dei dati per gestire dati disordinati imparando l'imputazione NaN ottimale e l'eliminazione anomala.
  • Scelta della combinazione metrica per la selezione del modello.

Installazione:

pip install autots  O
pip3 installa auto-ts   O
pip installare git+git://github.com/AutoViML/Auto_TS

Requisiti:

dask
scikit-learn
FB Prophet
statsmodels
pmdarima
XGBoost

Importare libreria utilizzando:

da auto_ts import auto_timeseries

Parametri disponibili in auto_timeseries:

modello = auto_timeseries( score_type="rmse", time_interval="Mese", non_seasonal_pdq=Nessuno, stagionalità=Falso, periodo_stagionale=12, model_type=['Profeta'], verboso=2)

È possibile regolare i parametri e analizzare il cambiamento nelle prestazioni del modello. Per maggiori dettagli sui parametri, clicca su qui.

Set di dati utilizzato:

Qui ho usato il Prezzo delle azioni Amazon set di dati per gennaio 2006 a gennaio 2018, che viene scaricato da Kaggle. Questa libreria offre solo modelli di previsione delle serie temporali dei treni. Il set di dati deve avere una colonna in formato data o ora.

Inizialmente, cargue el conjunto de datos de la Serie storiche con una columna de fecha y hora:

df = pd.read_csv("Amazon_Stock_Price.csv", usecols =['Data', 'Chiudere'])
df['Data'] = pd.to_datetime(df['Data'])
df = df.sort_values('Data')

Ora, dividere tutti i dati in dati di test e training:

train_df = df.iloc[:2800]
test_df = df.iloc[2800:]

Ora, visualizzeremo la divisione di prova del treno:

train_df.Close.plot(figsize=(15,8), titolo="Prezzo delle azioni AMZN", dimensione del carattere = 14, etichetta="Treno")
test_df.Close.plot(figsize=(15,8), titolo="Prezzo delle azioni AMZN", dimensione del carattere = 14, etichetta="Test")
plt.legend()
plt.grid()
plt.mostra()
447361_2v1ia-wwqraw_9hhyi3sqg-3183619

Ora, inicialicemos el objeto del modelo Auto-TS y ajustemos los datos de addestramento:

modello = auto_timeseries(forecast_period=219, score_type="rmse", time_interval="D", model_type="migliore")
model.fit(traindata= train_df, ts_column="Data", obiettivo="Chiudere")

Ora confrontiamo la precisione di diversi modelli:

model.get_leaderboard()
model.plot_cv_scores()
869661_hlzuiynyypofubfbvperkq-7440857

Ora testiamo il nostro modello con i dati di prova:

future_predictions = model.predict(dati di prova=219)

Finalmente, visualizzare il valore e la previsione dei dati di test:

897541_7knrxjtqd2oi7a0kojv2uw-9036483

Parametri disponibili in auto_timeseries:

modello = auto_timeseries( score_type="rmse", time_interval="Mese", non_seasonal_pdq=Nessuno, stagionalità=Falso, periodo_stagionale=12, model_type=['Profeta'], verboso=2)

Parametri disponibili in model.fit ():

model.fit( traindata=train_data, ts_column=ts_column, target=target, cv=5, set="," )

Parametri disponibili in model.predict ():

forecasts = model.predict( testdata = può essere un dataframe o un numero intero che sta per forecast_period, modello="migliore" o qualsiasi altra stringa che rappresenta il modello addestrato )

Puoi giocare con tutti questi parametri e analizzare le prestazioni del nostro modello e quindi puoi selezionare il modello più adatto per la tua dichiarazione di problema.. Puoi controllare tutti questi parametri in dettaglio facendo clic su qui.

conclusione:

In questo articolo, Ho discusso di come il modello delle serie temporali può essere automatizzato in una riga di codice Python. Auto-TS esegue la preelaborazione dei dati, in quanto rimuove i valori anomali dai dati e gestisce i dati disordinati apprendendo l'imputazione NaN ottimale. Usando solo una riga di codice, inizializzazione dell'oggetto Auto-TS e regolazione dei dati del treno, addestrerà automaticamente più modelli di serie temporali come ARIMA, SARIMAX, Profeta FB, DOVE, e genererà il modello più performante adatto alla nostra dichiarazione del problema. L'output del modello sembra dipendere dalla dimensione del set di dati. Se proviamo ad aumentare la dimensione del set di dati, il risultato può sicuramente migliorare.

Nota finale

Spero che questo articolo ti sia piaciuto. Qualsiasi domanda? Mi sono perso qualcosa?? Per favore, contattami LinkedIn Oppure lascia un commento qui sotto. E infine, … Non c'è bisogno di dire,

Grazie per aver letto!

Salute!!

Il supporto mostrato in questo articolo non è di proprietà di DataPeaker e viene utilizzato a discrezione dell'autore.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.