Комплексное решение для прогнозирования временных рядов, реализующее множество статистических моделей для решения задач конкурентного прогнозирования.
Этот проект предоставляет гибкую основу для прогнозирования временных рядов с использованием различных моделей, включая ARIMA, Holt-Winters, Prophet, TBATS и методы ensemble. Система предназначена для работы с различными форматами CSV и может автоматически определять сезонность и трендовые компоненты.
-
Несколько моделей прогнозирования:
- ARIMA (автоматическая ARIMA с сезонным определением)
- Holt-Winters Exponential Smoothing
- Prophet (инструмент прогнозирования Facebook)
- TBATS (тригонометрическая сезонность, преобразование Бокса-Кокса, ошибки ARMA, трендовые и сезонные компоненты)
- Ансамблевая модель (усреднение прогнозов из нескольких моделей)
-
Гибкие форматы ввода:
- CSV-файлы в один столбец
- CSV-файлы в два столбца со столбцами "дата" и "значение"
- Автоматическая предварительная обработка и создание индекса даты
-
Интерфейс командной строки:
- Настраиваемый горизонт прогноза
- Выбор моделей
- Простой в использовании анализ аргументов
- Python 3.7+
- Необходимые пакеты указаны в
requirements.txt
# Клонирование репозитория
git clone https://github.com/20saaa02/Battle.git
cd Battle
# Установка зависимостей
pip install -r requirements.txt
python main.py --input data/example.csv --horizon 12
# Запускайте только определенные модели
на python main.py ----input data/data.csv --horizon 24 --models "arima,prophet,ensemble"
# Запустить все модели (по умолчанию)
python main.py --input data/data.csv --horizon 12 --models "arima,holt,prophet,tbats,ensemble"
- "--input": путь к входному CSV-файлу (обязательно)
--horizon: количество точек для прогнозирования (обязательно)- "--models": список моделей, которые нужно запустить, разделенный запятыми (по умолчанию: все модели)
arima: Автоматическая ARIMA с определением сезонностиholt: Экспоненциальное сглаживание Холта-Уинтерсаprophet: Facebook Prophettbats: модель TBATSensemble: совокупность всех остальных моделей
Система поддерживает два формата CSV:
`` value 112 118 132 129 ...
### Формат 2: Пары Дата-значение
``
date, value
2023-01-01,112
2023-01-02,118
2023-01-03,132
...
Программа генерирует файл "forecast.csv", содержащий прогнозы по всем выбранным моделям:
arima,holt,prophet,tbats,ensemble
125.3,127.1,124.8,126.2,125.85
128.7,129.4,127.9,128.1,128.52
...
Для создания одной колонки необходимо запустить файл visualization.ipynb
forecasting-models-battle/
├── main.py # Главная точка входа
├── requirements.txt # Зависимости Python
├── visualization.ipynb # Визуализация временного ряда и прогнозов
├── data/
│ ├── example.csv # Файл с образцами данных
├── models/ # Реализации моделей
│ ├── arima_model.py # ARIMA
│ ├── holt_winters_model.py # Holt-Winters
│ ├── prophet_model.py # Prophet
│ ├── tbats_model.py # TBATS
│ └── ensemble_model.py # Ensemble
└── utils/ # Служебные функции
└── preprocessing.py # Предварительная обработка данных
- [Шарова Алёна Витальевна]: Весь проект (реализация модели, предварительная обработка данных, методы ансамбля тестирование, оптимизация, документация)