
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-средних, обучите её на обучающем наборе и примените к валидационному набору для получения оценок аномалий:```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)
Plot (сдвиг и масштабирование некоторых рядов, чтобы всё отображалось на одном графике):```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 anomaly detection example" />
</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 и пользовательские тренеры.
* **Интеграция с MLflow:** Интеграция с MLflow для автоматического отслеживания, сравнения и сохранения
экспериментов с моделями прогнозирования Darts. См. [блокнот с примерами MLflow](https://unit8co.github.io/darts/examples/29-MLflow-examples.html) для примеров.
* **Модели фильтрации:** 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) | [Конформное прогнозирование](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) | [Конформная квантильная регрессия](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), чтобы задавать вопросы, вносить предложения,
обсуждать варианты использования и многое другое. Если вы обнаружили ошибку или у вас есть предложения, сообщения об ошибках на GitHub также приветствуются.
Если то, что вы хотите нам сообщить, не подходит для Gitter или Github,
не стесняйтесь отправлять нам электронное письмо на <a href="mailto:[email protected]">[email protected]</a> по
вопросам, связанным с darts, или на <a href="mailto:[email protected]">[email protected]</a> по любым другим
запросам.
## Вклад в развитие
Разработка продолжается, и мы приветствуем предложения, запросы на включение изменений (pull requests) и сообщения об ошибках на 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}
}