Skip to content

Latest commit

 

History

History
130 lines (100 loc) · 5.71 KB

File metadata and controls

130 lines (100 loc) · 5.71 KB

Баттл моделей прогнозирования

Комплексное решение для прогнозирования временных рядов, реализующее множество статистических моделей для решения задач конкурентного прогнозирования.

Обзор

Этот проект предоставляет гибкую основу для прогнозирования временных рядов с использованием различных моделей, включая ARIMA, Holt-Winters, Prophet, TBATS и методы ensemble. Система предназначена для работы с различными форматами 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 Prophet
  • tbats: модель TBATS
  • ensemble: совокупность всех остальных моделей

Формат входных данных

Система поддерживает два формата CSV:

Формат 1: Один столбец

`` 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   # Предварительная обработка данных

Участники

  • [Шарова Алёна Витальевна]: Весь проект (реализация модели, предварительная обработка данных, методы ансамбля тестирование, оптимизация, документация)