
Python-библиотека для удобного прогнозирования и обнаружения аномалий на временных рядах.

Darts — это библиотека Python для удобного прогнозирования и обнаружения аномалий
во временных рядах. Она содержит множество моделей — от классических, таких как ARIMA, до
глубоких нейронных сетей. Все модели прогнозирования можно использовать одинаково,
с помощью функций fit() и predict(), как в scikit-learn.
Библиотека также упрощает бэктестинг моделей,
объединение прогнозов нескольких моделей и учёт внешних данных.
Darts поддерживает как одномерные, так и многомерные временные ряды и модели.
Модели на основе машинного обучения могут обучаться на потенциально больших наборах данных, содержащих несколько временных
рядов, а некоторые модели предоставляют широкие возможности для вероятностного прогнозирования.
Darts также предлагает обширные возможности обнаружения аномалий. Например, тривиально применить модели PyOD к временным рядам для получения оценок аномалий, или обернуть любую модель прогнозирования или фильтрации Darts для получения полноценных моделей обнаружения аномалий.
Мы рекомендуем сначала создать чистое Python-окружение для вашего проекта с Python 3.10+, используя ваш любимый инструмент (conda, venv, virtualenv с virtualenvwrapper или без него).
Как только окружение настроено, вы можете установить darts с помощью pip:
pip install darts
Более подробно можно узнать в нашей инструкции по установке.
Создайте объект TimeSeries из Pandas DataFrame и разделите его на обучающую и валидационную серии:```python
import pandas as pd
from darts import TimeSeries
df = pd.read_csv("AirPassengers.csv", delimiter=",")
series = TimeSeries.from_dataframe(df, "Month", "#Passengers")
train, val = series[:-36], series[-36:]
Подгоните модель экспоненциального сглаживания и сделайте (вероятностный) прогноз на продолжительность валидационного ряда:```python
from darts.models import ExponentialSmoothing
model = ExponentialSmoothing()
model.fit(train)
prediction = model.predict(len(val), num_samples=1000)
Постройте график медианы, 5-го и 95-го процентилей:```python import matplotlib.pyplot as plt
series.plot() prediction.plot(label="forecast", low_quantile=0.05, high_quantile=0.95) plt.legend()
<div style="text-align:center;">
<img src="https://raw.githubusercontent.com/unit8co/darts/master/static/images/example.png" alt="darts forecast example" />
</div>
### Обнаружение аномалий
Загрузите многомерный ряд, обрежьте его, оставьте 2 компонента, разделите на обучающую и валидационную выборки:```python
from darts.datasets import ETTh2Dataset
series = ETTh2Dataset().load()[:10000][["MUFL", "LULL"]]
train, val = series.split_before(0.6)
Постройте модель оценки аномалий на основе k-means, обучите её на обучающем наборе и используйте её на валидационном наборе, чтобы получить оценки аномалий:```python from darts.ad import KMeansScorer
scorer = KMeansScorer(k=2, window=5) scorer.fit(train) anom_score = scorer.score(val)
Постройте бинарный детектор аномалий и обучите его на обучающих оценках, затем примените его к валидационным оценкам для получения бинарной классификации аномалий:```python
from darts.ad import QuantileDetector
detector = QuantileDetector(high_quantile=0.99)
detector.fit(scorer.score(train))
binary_anom = detector.detect(anom_score)
График (сдвиг и масштабирование некоторых рядов, чтобы всё отображалось на одном рисунке):```python import matplotlib.pyplot as plt
series.plot() (anom_score / 2. - 100).plot(label="computed anomaly score", c="orangered", lw=3) (binary_anom * 45 - 150).plot(label="detected binary anomaly", lw=4)
<div style="text-align:center;">
<img src="https://raw.githubusercontent.com/unit8co/darts/master/static/images/example_ad.png" alt="пример обнаружения аномалий darts" />
</div>
## Возможности
* **Модели прогнозирования:** Большая коллекция моделей прогнозирования для задач регрессии, а также классификации; от статистических моделей (таких как
ARIMA) до моделей глубокого обучения (таких как N-BEATS). См. [модели прогнозирования](#forecasting-models) ниже.
* **Обнаружение аномалий:** Модуль `darts.ad` содержит набор скореров аномалий,
детекторов и агрегаторов, которые можно комбинировать для обнаружения аномалий во временных рядах.
С помощью любой из моделей прогнозирования или фильтрации Darts можно легко создать
полноценную модель обнаружения аномалий, которая сравнивает прогнозы с фактическими значениями.
`PyODScorer` позволяет без труда использовать детекторы PyOD для временных рядов.
* **Поддержка многомерных рядов:** `TimeSeries` может быть многомерным — то есть содержать несколько изменяющихся во времени
измерений/столбцов вместо одного скалярного значения. Многие модели могут принимать и создавать многомерные ряды.
* **Обучение на нескольких рядах (глобальные модели):** Все модели на основе машинного обучения (включая все нейронные сети)
поддерживают обучение на нескольких (возможно, многомерных) рядах. Это также масштабируется на большие наборы данных.
* **Поддержка вероятностных прогнозов:** Объекты `TimeSeries` могут (опционально) представлять стохастические
временные ряды; это может использоваться, например, для получения доверительных интервалов, и многие модели поддерживают различные
варианты вероятностного прогнозирования (например, оценку параметрических распределений или квантилей).
Некоторые скореры обнаружения аномалий также умеют использовать эти прогнозные распределения.
* **Поддержка конформного прогнозирования:** Наши модели конформного прогнозирования позволяют генерировать вероятностные прогнозы с
калиброванными квантильными интервалами для любой предварительно обученной глобальной модели прогнозирования.
* **Поддержка прошлых и будущих ковариат:** Многие модели в Darts поддерживают временные ряды ковариат (внешних данных), наблюдаемых в прошлом и/или известных на будущее,
в качестве входных данных для получения прогнозов.
* **Поддержка статических ковариат:** В дополнение к зависящим от времени данным, `TimeSeries` также может содержать
статические данные для каждого измерения, которые могут использоваться некоторыми моделями.
* **Иерархическое согласование:** Darts предлагает трансформеры для выполнения согласования (реконсиляции).
Они позволяют прогнозам суммироваться так, чтобы соблюдалась базовая иерархия.
* **Регрессионные модели:** Можно подключить любую совместимую с scikit-learn модель
для получения прогнозов как функций лаговых значений целевого ряда и ковариат.
* **Обучение с весами наблюдений:** Все глобальные модели поддерживают обучение с весами наблюдений. Их можно
применять к каждому наблюдению, прогнозируемому временному шагу и целевому столбцу.
* **Сдвиг начала прогноза:** Все глобальные модели поддерживают обучение и прогнозирование на сдвинутом выходном окне.
Это полезно, например, для прогнозов на рынке «на сутки вперёд» или когда ковариаты (или целевой ряд) поступают
с задержкой.
* **Объяснимость:** Darts имеет возможность *объяснять* некоторые модели прогнозирования с помощью значений SHAP.
* **Обработка данных:** Инструменты для простого применения (и отмены) распространённых преобразований
данных временных рядов (масштабирование, заполнение пропущенных значений, дифференцирование, boxcox, ...)
* **Метрики:** Разнообразные метрики для оценки качества подгонки временных рядов;
от R2-показателей до средней абсолютной масштабированной ошибки.
* **Бэктестинг:** Утилиты для имитации исторических прогнозов с использованием скользящих временных окон.
* **Поддержка PyTorch Lightning:** Все модели глубокого обучения реализованы с использованием PyTorch Lightning,
что поддерживает, среди прочего, пользовательские колбэки, обучение на GPU/TPU и пользовательские тренеры.
* **Модели фильтрации:** Darts предлагает три модели фильтрации: `KalmanFilter`, `GaussianProcessFilter`
и `MovingAverageFilter`, которые позволяют фильтровать временные ряды и в некоторых случаях получать вероятностные
выводы о базовых состояниях/значениях.
* **Наборы данных:** Подмодуль `darts.datasets` содержит некоторые популярные наборы данных временных рядов для быстрых
и воспроизводимых экспериментов.
* **Совместимость с несколькими бэкендами:** Объекты `TimeSeries` могут быть созданы из различных бэкендов и экспортированы в них, таких как pandas, polars, numpy, pyarrow, xarray и другие, что обеспечивает бесшовную интеграцию с различными библиотеками обработки данных.
## Модели прогнозирования
Ниже представлен обзор моделей прогнозирования, которые в настоящее время реализованы в Darts. Наш набор включает как регрессионные, так и классификационные модели, каждая из которых предназначена для конкретных задач прогнозирования. Мы стремимся расширять наш ассортимент новыми моделями и функциями для улучшения ваших возможностей прогнозирования.
**Регрессионные модели:** Наши регрессионные модели предназначены для прогнозирования непрерывных числовых значений, что делает их идеальными для прогнозирования будущих тенденций и закономерностей в данных временных рядов. Используйте эти модели, чтобы получить представление о возможных будущих результатах на основе исторических данных.| Модель | Источники | Поддержка целевых рядов:<br/><br/>Одномерные/<br/>Многомерные | Поддержка ковариат:<br/><br/>Наблюдаемые в прошлом/<br/>Известные на будущее/<br/>Статические | Вероятностное прогнозирование:<br/><br/>Сэмплирование/<br/>Параметры распределения | Обучение и прогнозирование на нескольких рядах |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------|--------------------------------------------------------------------------|--------------------------------------------------------------------------|-------------------------------------------|
| **Базовые модели**<br/>([LocalForecastingModel](https://unit8co.github.io/darts/userguide/covariates.html#local-forecasting-models-lfms)) | | | | | |
| [NaiveMean](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.baselines.html#darts.models.forecasting.baselines.NaiveMean) | | ✅ ✅ | 🔴 🔴 🔴 | 🔴 🔴 | 🔴 |
| [NaiveSeasonal](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.baselines.html#darts.models.forecasting.baselines.NaiveSeasonal) | | ✅ ✅ | 🔴 🔴 🔴 | 🔴 🔴 | 🔴 |
| [NaiveDrift](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.baselines.html#darts.models.forecasting.baselines.NaiveDrift) | | ✅ ✅ | 🔴 🔴 🔴 | 🔴 🔴 | 🔴 |
| [NaiveMovingAverage](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.baselines.html#darts.models.forecasting.baselines.NaiveMovingAverage) | | ✅ ✅ | 🔴 🔴 🔴 | 🔴 🔴 | 🔴 |
| **Статистические / классические модели**<br/>([LocalForecastingModel](https://unit8co.github.io/darts/userguide/covariates.html#local-forecasting-models-lfms)) | | | | | |
| [ARIMA](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.arima.html#darts.models.forecasting.arima.ARIMA) | | ✅ 🔴 | 🔴 ✅ 🔴 | ✅ 🔴 | 🔴 |
| [VARIMA](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.varima.html#darts.models.forecasting.varima.VARIMA) | | 🔴 ✅ | 🔴 ✅ 🔴 | ✅ 🔴 | 🔴 |
| [ExponentialSmoothing](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.exponential_smoothing.html#darts.models.forecasting.exponential_smoothing.ExponentialSmoothing) | | ✅ 🔴 | 🔴 🔴 🔴 | ✅ 🔴 | 🔴 |
| [Theta](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.theta.html#darts.models.forecasting.theta.Theta) и [FourTheta](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.theta.html#darts.models.forecasting.theta.FourTheta) | [Статья Theta](https://robjhyndman.com/papers/Theta.pdf) и [исходный код 4 Theta](https://github.com/Mcompetitions/M4-methods/blob/master/4Theta%20method.R) | ✅ 🔴 | 🔴 🔴 🔴 | 🔴 🔴 | 🔴 |
| [Prophet](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.prophet_model.html#darts.models.forecasting.prophet_model.Prophet) | [репозиторий Prophet](https://github.com/facebook/prophet) | ✅ 🔴 | 🔴 ✅ 🔴 | ✅ 🔴 | 🔴 |
| [FFT](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.fft.html#darts.models.forecasting.fft.FFT) (быстрое преобразование Фурье) | | ✅ 🔴 | 🔴 🔴 🔴 | 🔴 🔴 | 🔴 |
| [KalmanForecaster](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.kalman_forecaster.html#darts.models.forecasting.kalman_forecaster.KalmanForecaster) с использованием фильтра Калмана и N4SID для идентификации системы | [статья N4SID](https://people.duke.edu/~hpgavin/SystemID/References/VanOverschee-Automatica-1994.pdf) | ✅ ✅ | 🔴 ✅ 🔴 | ✅ 🔴 | 🔴 |
| [TBATS](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.sf_tbats.html#darts.models.forecasting.sf_tbats.TBATS) | [статья TBATS](https://robjhyndman.com/papers/ComplexSeasonality.pdf) | ✅ 🔴 | 🔴 ✅ 🔴 | ✅ ✅ | 🔴 |
| метод [Croston](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.sf_croston.html#darts.models.forecasting.sf_croston.Croston) | | ✅ 🔴 | 🔴 ✅ 🔴 | ✅ ✅ | 🔴 |
| [StatsForecastModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.sf_model.html#darts.models.forecasting.sf_model.StatsForecastModel): обёртка вокруг любой модели [StatsForecast](https://nixtlaverse.nixtla.io/statsforecast/index.html#models) | [statsforecast от Nixtla](https://github.com/Nixtla/statsforecast) | ✅ 🔴 | 🔴 ✅ 🔴 | ✅ ✅ | 🔴 |
| [AutoARIMA](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.sf_auto_arima.html#darts.models.forecasting.sf_auto_arima.AutoARIMA) | [statsforecast от Nixtla](https://github.com/Nixtla/statsforecast) | ✅ 🔴 | 🔴 ✅ 🔴 | ✅ ✅ | 🔴 |
| [AutoETS](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.sf_auto_ets.html#darts.models.forecasting.sf_auto_ets.AutoETS) | [statsforecast от Nixtla](https://github.com/Nixtla/statsforecast) | ✅ 🔴 | 🔴 ✅ 🔴 | ✅ ✅ | 🔴 |
| [AutoCES](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.sf_auto_ces.html#darts.models.forecasting.sf_auto_ces.AutoCES) | [statsforecast от Nixtla](https://github.com/Nixtla/statsforecast) | ✅ 🔴 | 🔴 ✅ 🔴 | ✅ ✅ | 🔴 |
| [AutoMFLES](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.sf_auto_mfles.html#darts.models.forecasting.sf_auto_mfles.AutoMFLES) | [statsforecast от Nixtla](https://github.com/Nixtla/statsforecast) | ✅ 🔴 | 🔴 ✅ 🔴 | ✅ ✅ | 🔴 |
| [AutoTBATS](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.sf_auto_tbats.html#darts.models.forecasting.sf_auto_tbats.AutoTBATS) | [statsforecast от Nixtla](https://github.com/Nixtla/statsforecast) | ✅ 🔴 | 🔴 ✅ 🔴 | ✅ ✅ | 🔴 |
| [AutoTheta](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.sf_auto_theta.html#darts.models.forecasting.sf_auto_theta.AutoTheta) | [statsforecast от Nixtla](https://github.com/Nixtla/statsforecast) | ✅ 🔴 | 🔴 ✅ 🔴 | ✅ ✅ | 🔴 |
| [MultivariateModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.multivariate_model.html#darts.models.forecasting.multivariate_model.MultivariateModel) | | ✅ ✅ | 🔴 ✅ 🔴 | ✅ ✅ | 🔴 |
| **Глобальные базовые модели**<br/>([GlobalForecastingModel](https://unit8co.github.io/darts/userguide/covariates.html#global-forecasting-models-gfms)) | | | | | |
| [GlobalNaiveAggregate](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.global_baseline_models.html#darts.models.forecasting.global_baseline_models.GlobalNaiveAggregate) | | ✅ ✅ | 🔴 🔴 🔴 | 🔴 🔴 | ✅ |
| [GlobalNaiveDrift](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.global_baseline_models.html#darts.models.forecasting.global_baseline_models.GlobalNaiveDrift) | | ✅ ✅ | 🔴 🔴 🔴 | 🔴 🔴 | ✅ |
| [GlobalNaiveSeasonal](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.global_baseline_models.html#darts.models.forecasting.global_baseline_models.GlobalNaiveSeasonal) | | ✅ ✅ | 🔴 🔴 🔴 | 🔴 🔴 | ✅ |
| **Регрессионные модели**<br/>([GlobalForecastingModel](https://unit8co.github.io/darts/userguide/covariates.html#global-forecasting-models-gfms)) | | | | | |
| [SKLearnModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.sklearn_model.html#darts.models.forecasting.sklearn_model.SKLearnModel): обёртка вокруг любой регрессионной модели, подобной scikit-learn | | ✅ ✅ | ✅ ✅ ✅ | 🔴 🔴 | ✅ |
| [LinearRegressionModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.linear_regression_model.html#darts.models.forecasting.linear_regression_model.LinearRegressionModel) | | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| [RandomForestModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.random_forest.html#darts.models.forecasting.random_forest.RandomForestModel) | | ✅ ✅ | ✅ ✅ ✅ | 🔴 🔴 | ✅ |
| [CatBoostModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.catboost_model.html#darts.models.forecasting.catboost_model.CatBoostModel) | | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| [LightGBMModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.lgbm.html#darts.models.forecasting.lgbm.LightGBMModel) | | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| [XGBModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.xgboost.html#darts.models.forecasting.xgboost.XGBModel) | | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| **Модели на основе PyTorch (Lightning)**<br/>([GlobalForecastingModel](https://unit8co.github.io/darts/userguide/covariates.html#global-forecasting-models-gfms)) | | | | | |
| [RNNModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.rnn_model.html#darts.models.forecasting.rnn_model.RNNModel) (включая LSTM и GRU); эквивалент DeepAR в его вероятностной версии | [статья DeepAR](https://arxiv.org/abs/1704.04110) | ✅ ✅ | 🔴 ✅ 🔴 | ✅ ✅ | ✅ |
| [BlockRNNModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.block_rnn_model.html#darts.models.forecasting.block_rnn_model.BlockRNNModel) (включая LSTM и GRU) | | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| [NBEATSModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.nbeats.html#darts.models.forecasting.nbeats.NBEATSModel) | [статья N-BEATS](https://arxiv.org/abs/1905.10437) | ✅ ✅ | ✅ 🔴 🔴 | ✅ ✅ | ✅ |
| [NHiTSModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.nhits.html#darts.models.forecasting.nhits.NHiTSModel) | [статья N-HiTS](https://arxiv.org/abs/2201.12886) | ✅ ✅ | ✅ 🔴 🔴 | ✅ ✅ | ✅ |
| [TCNModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.tcn_model.html#darts.models.forecasting.tcn_model.TCNModel) | [статья TCN](https://arxiv.org/abs/1803.01271), [статья DeepTCN](https://arxiv.org/abs/1906.04397), [пост в блоге](https://medium.com/unit8-machine-learning-publication/temporal-convolutional-networks-and-forecasting-5ce1b6e97ce4) | ✅ ✅ | ✅ 🔴 🔴 | ✅ ✅ | ✅ |
| [TransformerModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.transformer_model.html#darts.models.forecasting.transformer_model.TransformerModel) | | ✅ ✅ | ✅ 🔴 🔴 | ✅ ✅ | ✅ |
| [TFTModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.tft_model.html#darts.models.forecasting.tft_model.TFTModel) (Temporal Fusion Transformer) | [статья TFT](https://arxiv.org/pdf/1912.09363.pdf), [PyTorch Forecasting](https://pytorch-forecasting.readthedocs.io/en/latest/models.html) | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| [DLinearModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.dlinear.html#darts.models.forecasting.dlinear.DLinearModel) | [статья DLinear](https://arxiv.org/pdf/2205.13504.pdf) | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| [NLinearModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.nlinear.html#darts.models.forecasting.nlinear.NLinearModel) | [статья NLinear](https://arxiv.org/pdf/2205.13504.pdf) | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| [TiDEModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.tide_model.html#darts.models.forecasting.tide_model.TiDEModel) | [статья TiDE](https://arxiv.org/pdf/2304.08424.pdf) | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| [TSMixerModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.tsmixer_model.html#darts.models.forecasting.tsmixer_model.TSMixerModel) | [статья TSMixer](https://arxiv.org/pdf/2303.06053.pdf), [реализация на PyTorch](https://github.com/ditschuk/pytorch-tsmixer) | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| [NeuralForecastModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.nf_model.html#darts.models.forecasting.nf_model.NeuralForecastModel): обёртка вокруг любой базовой модели [NeuralForecast](https://nixtlaverse.nixtla.io/neuralforecast/docs/capabilities/overview.html) | [документация NeuralForecast](https://nixtlaverse.nixtla.io/neuralforecast/docs/) | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| **Фундаментальные модели**<br/>([GlobalForecastingModel](https://unit8co.github.io/darts/userguide/covariates.html#global-forecasting-models-gfms)): Обучение не требуется | | | | | |
| [Chronos2Model](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.chronos2_model.html#darts.models.forecasting.chronos2_model.Chronos2Model) | [отчёт Chronos-2](https://arxiv.org/abs/2510.15821), [пост в блоге Amazon](https://www.amazon.science/blog/introducing-chronos-2-from-univariate-to-universal-forecasting) | ✅ ✅ | ✅ ✅ 🔴 | ✅ ✅ | ✅ |
| [TimesFM2p5Model](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.timesfm2p5_model.html#darts.models.forecasting.timesfm2p5_model.TimesFM2p5Model) | [статья TimesFM 1.0](https://arxiv.org/abs/2310.10688), [пост в блоге Google](https://research.google/blog/a-decoder-only-foundation-model-for-time-series-forecasting) | ✅ ✅ | 🔴 🔴 🔴 | ✅ ✅ | ✅ |
| [TiRexModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.tirex_model.html#darts.models.forecasting.tirex_model.TiRexModel) | [статья TiRex](https://arxiv.org/abs/2505.23719), [TiRex GitHub](https://github.com/NX-AI/tirex) | ✅ ✅ | 🔴 🔴 🔴 | ✅ ✅ | ✅ |
| [PatchTSTFMModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.patchtst_fm_model.html#darts.models.forecasting.patchtst_fm_model.PatchTSTFMModel) | [статья PatchTST-FM](https://arxiv.org/abs/2602.06909), [PatchTST-FM GitHub](https://github.com/ibm-granite/granite-tsfm) | ✅ ✅ | 🔴 🔴 🔴 | ✅ ✅ | ✅ |
| **Ансамблевые модели**<br/>([GlobalForecastingModel](https://unit8co.github.io/darts/userguide/covariates.html#global-forecasting-models-gfms)): Поддержка моделей зависит от ансамблируемых моделей прогнозирования и самой ансамблевой модели | | | | | |
| [NaiveEnsembleModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.naive_ensemble_model.html#darts.models.forecasting.naive_ensemble_model.NaiveEnsembleModel) | | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| [RegressionEnsembleModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.regression_ensemble_model.html#darts.models.forecasting.regression_ensemble_model.RegressionEnsembleModel) | | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| **Конформные модели**<br/>([GlobalForecastingModel](https://unit8co.github.io/darts/userguide/covariates.html#global-forecasting-models-gfms)): Поддержка моделей зависит от используемой модели прогнозирования | | | | | |
| [ConformalNaiveModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.conformal_models.html#darts.models.forecasting.conformal_models.ConformalNaiveModel) | [Conformalized Prediction](https://arxiv.org/pdf/1905.03222) | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| [ConformalQRModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.conformal_models.html#darts.models.forecasting.conformal_models.ConformalQRModel) | [Conformalized Quantile Regression](https://arxiv.org/pdf/1905.03222) | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |**Модели классификации:** Модели классификации в Darts предназначены для прогнозирования категориальных меток классов, что обеспечивает эффективную разметку временных рядов и прогнозирование будущих классов. Эти модели идеально подходят для сценариев, в которых критически важно выявлять отдельные категории или состояния с течением времени.
| Модель | Исходники | Поддержка целевых рядов:<br/><br/>Одномерные/<br/>Многомерные | Поддержка ковариат:<br/><br/>Наблюдаемые в прошлом/<br/>Известные заранее/<br/>Статические | Вероятностное прогнозирование:<br/><br/>Сэмплированные/<br/>Параметры распределения | Обучение и прогнозирование на нескольких рядах |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|--------------------------------------------------------------|--------------------------------------------------------------------------|--------------------------------------------------------------------------|-------------------------------------------|
| **Модели регрессии**<br/>([GlobalForecastingModel](https://unit8co.github.io/darts/userguide/covariates.html#global-forecasting-models-gfms)) | | | | | |
| [SKLearnClassifierModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.sklearn_model.html#darts.models.forecasting.sklearn_model.SKLearnClassifierModel): обёртка вокруг любой модели классификации, подобной scikit-learn | | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| [CatBoostClassifierModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.catboost_model.html#darts.models.forecasting.catboost_model.CatBoostClassifierModel) | | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| [LightGBMClassifierModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.lgbm.html#darts.models.forecasting.lgbm.LightGBMClassifierModel) | | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
| [XGBClassifierModel](https://unit8co.github.io/darts/generated_api/darts.models.forecasting.xgboost.html#darts.models.forecasting.xgboost.XGBClassifierModel) | | ✅ ✅ | ✅ ✅ ✅ | ✅ ✅ | ✅ |
## Сообщество и контакты
Любой желающий может присоединиться к нашему [Gitter-чату](https://gitter.im/u8darts/darts), чтобы задавать вопросы, вносить предложения,
обсуждать сценарии использования и многое другое. Если вы нашли ошибку или у вас есть предложения, приветствуются также issues на GitHub.
Если то, что вы хотите нам сообщить, не подходит для Gitter или GitHub,
вы можете отправить нам электронное письмо на <a href="mailto:[email protected]">[email protected]</a> по
вопросам, связанным с Darts, или на <a href="mailto:[email protected]">[email protected]</a> по любым другим
запросам.
## Вклад в проект
Разработка продолжается, и мы приветствуем предложения, а также pull requests и issues на GitHub.
Все участники будут указаны на
[странице журнала изменений](https://github.com/unit8co/darts/blob/master/CHANGELOG.md).
Прежде чем приступить к работе над вкладом (новая функция или исправление),
[ознакомьтесь с нашими правилами участия](https://github.com/unit8co/darts/blob/master/CONTRIBUTING.md).
## Цитирование
Если вы используете Darts в своей научной работе, мы будем признательны за цитирование следующей статьи JMLR.
[Darts: User-Friendly Modern Machine Learning for Time Series](https://www.jmlr.org/papers/v23/21-1177.html)
BibTeX-запись (или скопируйте напрямую через цитирование репозитория GitHub):```
@article{Herzen_Darts_User-Friendly_Modern_2022,
author = {Herzen, Julien and Lässig, Francesco and Piazzetta, Samuele Giuliano and Neuer, Thomas and Tafti, Léo and Raille, Guillaume and Van Pottelbergh, Tomas and Pasieka, Marek and Skrodzki, Andrzej and Huguenin, Nicolas and Dumonal, Maxime and Kościsz, Jan and Bader, Dennis and Gusset, Frédérick and Benheddi, Mounir and Williamson, Camila and Kosinski, Michal and Petrik, Matej and Grosch, Gaël},
journal = {Journal of Machine Learning Research},
number = {124},
pages = {1--6},
title = {{Darts: User-Friendly Modern Machine Learning for Time Series}},
url = {https://jmlr.org/papers/v23/21-1177.html},
volume = {23},
year = {2022}
}