unit8co / darts

A python library for user-friendly forecasting and anomaly detection on time series.
https://unit8co.github.io/darts/
Apache License 2.0
7.55k stars 829 forks source link

Add Multi-Horizon Time Series Classification Support #2315

Open eetulauri opened 2 months ago

eetulauri commented 2 months ago

Darts has established itself as a premier time series forecasting library. Adding multi-horizon time series classification support would solidify its position and significantly benefit researchers and practitioners alike. This feature aligns with previous discussions and interest, as seen in issue #1473.

Use Case Example:

Traffic congestion prediction: Classifying whether traffic congestion is likely to occur over multiple upcoming time intervals (e.g., next 15 minutes, next hour) based on historical traffic patterns.

Desired Functionality

Potential Approaches

madtoinou commented 2 months ago

Hi @eetulauri,

This is on Darts' roadmap but we would like to add conformal prediction before tackling the classification features as it would require some work for the deep learning models.

As described in the linked issue, you can easily use "Classifier" variant of supported model by creating a new class and overwritting the "model" attribute.

You can also use classifier models from sklearn thanks to the RegressionModel class;

import numpy as np
from darts import TimeSeries
from darts.models import RegressionModel
from sklearn.ensemble import RandomForestClassifier

ts = TimeSeries.from_values(np.random.randint(0,10,100))
model = RegressionModel(
    lags=4,
    model=RandomForestClassifier()
)
model.fit(ts)
model.predict(10)