EDIT 1: More models in playground version (see comment)

Streamlit + Darts Demo live

See the screencast below for demos on training and forecasting on Heater purchases and personal spending (from a real bank CSV export format)!

Adding streamlit inputs to the Darts documentation example led to this quick demo project that lets you explore any univariate Timeseries CSV and make forecasts with an Exponential Smoothing model (more models to come).

I wanted to explore the claim of “Time Series Made Easy in Python” by the Darts library.

I knew from their pydata talk that making something interactive around the training API would be straightforward.

This version will resample and sum values to get to monthly samples (or change to weekly / quarterly / etc); there are other Pandas resampling aggregation options though!

See the app script source

(apologies for the speed, I wanted to keep the video short)

Free CSV Entry Direct Link

Next steps on this would be:

Series / Data info and timeseries attributes

Exposing configuration options for the model

Adding other model options from Darts

Backtest / Historical Forecast view

Grid search result view

(I also need to get around to making a gif maker that is easier than ffmpeg! EDIT: https://share.streamlit.io/gerardrbentley/gif-maker/main )

5 Likes

Darts API Playground

Tested 14 models listed below on some Univariate and Multivariate datasets!

So Far:

Example datasets
Upload your own dataset
Model fit hand tuning on parameterized models. (Model docs included in expander; `__doc__`

strings and signature based)
Model forecasting and plotting controls
Downloadable forecasts
EDIT New features
Dataset Seasonality, Trend, and other Metrics
Error Metrics over forecasted periods
Historical Forecasting
Backtested Error Metrics
Flexible forecasting horizon and stride for backtesting
Explore A Time Series!
Use your own csv data that has a time column and plot some forecasts!

Or use one of the example Darts datasets

Explorable Models
NaiveDrift

NaiveMean

NaiveSeasonal

ARIMA

VARIMA (Requires Multivariate dataset)

ExponentialSmoothing

LinearRegressionModel (Hand set Lag)

FFT

Theta

FourTheta

KalmanForecaster

LightGBMModel

RandomForest (Hand set Lag)

RegressionModel

Not Yet Explorable Models
Ensembles

NaiveEnsembleModel

EnsembleModel

RegressionEnsembleModel

Neural Net Based

RNNModel (incl. LSTM and GRU); equivalent to DeepAR in its probabilistic version,True,True,True,True,False,True,DeepAR paper

BlockRNNModel (incl. LSTM and GRU),True,True,True,True,True,False,

NBEATSModel,True,True,True,True,True,False,N-BEATS paper

TCNModel,True,True,True,True,True,False,“TCN paper, DeepTCN paper, blog post”

TransformerModel,True,True,True,True,True,False,

TFTModel (Temporal Fusion Transformer),True,True,True,True,True,True,“TFT paper, PyTorch Forecasting”

Prophet

Cheers!

1 Like

Very cool! Thanks for sharing @gerardrbentley .

1 Like

asehmi
March 13, 2022, 1:14am
#4
Nice. I hope to get some time to look at this.