Time Series Forecasting with AI: From ARIMA to Foundation Models

Modern approaches to predicting sequential data

返回教程列表
进阶42 分钟

Time Series Forecasting with AI: From ARIMA to Foundation Models

Modern approaches to predicting sequential data

Learn time series forecasting from classical methods to AI-powered approaches. Cover LSTM, Transformers, and the latest foundation models like TimeGPT and Chronos for accurate forecasting.

time-seriesforecastinglstmtransformerschronos

Time Series Forecasting with AI

Introduction

Time series forecasting is crucial for:
  • Sales and demand forecasting
  • Financial market prediction
  • Energy consumption planning
  • Predictive maintenance
  • Weather forecasting
  • Classical Methods

    python
    from statsmodels.tsa.arima.model import ARIMA
    import pandas as pd

    Load time series data

    ts = pd.read_csv('sales.csv', index_col='date', parse_dates=True)

    Fit ARIMA model

    model = ARIMA(ts, order=(2, 1, 2)) # (p, d, q) results = model.fit() forecast = results.forecast(steps=30)

    LSTM-Based Forecasting

    python
    import numpy as np
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import LSTM, Dense, Dropout

    def create_sequences(data, seq_length): X, y = [], [] for i in range(len(data) - seq_length): X.append(data[i:i+seq_length]) y.append(data[i+seq_length]) return np.array(X), np.array(y)

    model = Sequential([ LSTM(128, return_sequences=True, input_shape=(seq_length, n_features)), Dropout(0.2), LSTM(64), Dropout(0.2), Dense(1) ]) model.compile(optimizer='adam', loss='mse')

    Transformer-Based: Temporal Fusion Transformer

    python
    from pytorch_forecasting import TemporalFusionTransformer, TimeSeriesDataSet

    dataset = TimeSeriesDataSet( data, time_idx="time_idx", target="value", group_ids=["series_id"], max_encoder_length=60, max_prediction_length=24 )

    tft = TemporalFusionTransformer.from_dataset(dataset) trainer = pl.Trainer(max_epochs=30) trainer.fit(tft, train_dataloader, val_dataloader)

    Foundation Models for Time Series

    Amazon Chronos

    python
    import torch
    from chronos import ChronosPipeline

    pipeline = ChronosPipeline.from_pretrained( "amazon/chronos-t5-large", device_map="cuda", torch_dtype=torch.bfloat16 )

    Zero-shot forecasting - no training needed!

    forecast = pipeline.predict( context=torch.tensor(historical_data), prediction_length=24, num_samples=20 )

    Nixtla TimeGPT

    python
    from nixtla import NixtlaClient

    client = NixtlaClient(api_key="...") forecast = client.forecast(df, h=24, freq="H")

    Model Selection Guide

    Data SizeBest Approach

    < 1000 pointsARIMA, Exponential Smoothing 1000-100KLightGBM with time features > 100KLSTM or TFT Multiple seriesFoundation model (Chronos)

    相关工具

    statsmodelspytorch-forecastingchronosnixtla