Обучение моделей временных рядов: Prophet, NeuralProphet, TimesFM

Прогнозирование временных рядов — ключевая задача для планирования продаж, закупок и загрузки мощностей. Недавно один из наших клиентов — сеть розничных магазинов с 500 точками — столкнулся с нестабильным прогнозом еженедельных продаж: Seasonal Naive давал SMAPE 15%, а бизнес требовал точность 10%.

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    997
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1264
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1002

Прогнозирование временных рядов — ключевая задача для планирования продаж, закупок и загрузки мощностей. Недавно один из наших клиентов — сеть розничных магазинов с 500 точками — столкнулся с нестабильным прогнозом еженедельных продаж: Seasonal Naive давал SMAPE 15%, а бизнес требовал точность 10%. Мы выбрали Prophet, настроили changepoint_prior_scale=0.05, seasonality_mode='multiplicative' и получили SMAPE 8%, сократив ошибку вдвое. Это реальный пример, как правильная модель и тюнинг решают проблему.

Мы занимаемся AI/ML более 5 лет, выполнили 30+ проектов по прогнозированию. Гарантируем качество: используем строгую кросс-валидацию и сравниваем с несколькими baseline. Наши инженеры публикуют model cards и обеспечивают воспроизводимость экспериментов. Бюджет на обучение модели обсуждается индивидуально — стоимость зависит от сложности данных и требуемой точности.

Как выбрать между Prophet, NeuralProphet и TimesFM?

Выбор модели зависит от трёх факторов: объём данных, необходимость интерпретируемости, наличие внешних событий (праздники, промо). Если у вас мало данных (менее 2 лет) и нужна прозрачность — берите Prophet. Если есть нелинейные лаги и внешние регрессоры — NeuralProphet. Если данных много (тысячи точек) и нужна максимальная точность без объяснения — TimesFM. Для точного подбора свяжитесь с нами — мы проведём бесплатный анализ ваших данных.

Что входит в обучение модели под ключ?

Мы готовим данные, подбираем гиперпараметры, проводим кросс-валидацию, строим production-пайплайн (Airflow + MLflow), документируем модель и передаём API-эндпоинт. В результате вы получаете обученную модель, документацию, инструкцию по эксплуатации и месяц поддержки. Дополнительно настраиваем мониторинг дрейфа данных и автообновление модели.

Prophet: декомпозиционная модель

Meta Prophet — аддитивная модель:

y(t) = trend(t) + seasonality(t) + holidays(t) + ε(t) 

Trend — кусочно-линейный или логистический рост. Changepoints — автоматическое обнаружение точек изменения тренда через L1-регуляризацию.

Seasonality описывается рядами Фурье: годовая с N=10 (default), недельная с N=3, пользовательская для любого периода.

Обучение и тюнинг:

from prophet import Prophet import pandas as pd m = Prophet( changepoint_prior_scale=0.05, # гибкость тренда seasonality_prior_scale=10.0, # гибкость сезонности holidays_prior_scale=10.0, seasonality_mode='multiplicative' # для данных с ростом ) m.add_country_holidays(country_name='RU') m.add_seasonality(name='monthly', period=30.5, fourier_order=5) m.fit(df) # df с колонками ds, y 

Ключевые параметры тюнинга: changepoint_prior_scale (0.001–0.5) контролирует overfit к тренду, seasonality_mode ('additive' для стационарных, 'multiplicative' для растущих), fourier_order (больше = гибче сезонность).

Кросс-валидация Prophet:

from prophet.diagnostics import cross_validation, performance_metrics df_cv = cross_validation(m, initial='730 days', period='180 days', horizon='365 days') df_p = performance_metrics(df_cv) 

NeuralProphet: Prophet с нейросетевыми компонентами

NeuralProphet дополняет Prophet авторегрессией (AR-Net) и нелинейными лаговыми регрессорами. Обучение через PyTorch значительно быстрее MCMC-Prophet.

from neuralprophet import NeuralProphet m = NeuralProphet( n_forecasts=7, # горизонт прогноза n_lags=14, # число лагов для AR seasonality_mode='auto', learning_rate=0.01 ) m = m.add_country_holidays('RU') metrics = m.fit(df, freq='D', validation_df=df_val) 

NeuralProphet эффективен при нелинейных лаговых зависимостях, множественных шагах прогноза и наличии внешних регрессоров с задержкой.

TimesFM: Foundation Model от Google

TimesFM — pretrained foundation model для zero-shot прогнозирования. Не требует обучения на ваших данных, первый прогноз за минуты.

import timesfm tfm = timesfm.TimesFm( context_len=512, horizon_len=128, input_patch_len=32, output_patch_len=128, num_layers=20, model_dims=1280, backend='gpu' ) tfm.load_from_checkpoint(repo_id="google/timesfm-1.0-200m") # Zero-shot inference forecast_input = [np.array(historical_data)] frequency_input = [0] # 0=high freq, 1=low freq point_forecast, experimental_quantile_forecast = tfm.forecast( forecast_input, freq=frequency_input ) 

Преимущества: zero-shot, скорость, сильный результат на большинстве задач. Ограничения: не учитывает known future covariates без fine-tuning, ограниченная интерпретируемость, требует значимого контекста (>500 точек).

Сравнительный выбор моделей

Критерий Prophet NeuralProphet TimesFM
Нужна интерпретируемость ✓✓
Есть known future events ✓✓ ✓✓
Мало данных (< 2 лет) ✓✓
Нелинейные лаги важны ✓✓
Нужна высшая точность ✓✓
Множество рядов (>1000) ✓✓

Примерные сроки и объём работ

Этап Длительность
Подготовка данных и EDA 3–5 дней
Обучение и тюнинг одной модели 5–10 дней
Кросс-валидация и выбор финальной модели 2–3 дня
Развёртывание production-пайплайна 10–15 дней
Документация и передача 2–3 дня
Типичные ошибки при обучении Prophet
  • Установка changepoint_prior_scale слишком большой (>0.5) — переобучение тренда.
  • Игнорирование мультиколлинеарности между праздничными эффектами.
  • Использование аддитивной сезонности на данных с экспоненциальным ростом.
  • Недостаточное количество initial периодов в кросс-валидации (меньше 2 сезонов).

Практика обучения и валидации

Pipeline обучения (пример с Prophet):

  1. Подготовка данных: ресемплинг к нужной частоте, обработка пропусков (interpolation / forward fill).
  2. Анализ: ACF/PACF, decompose, holiday analysis.
  3. Baseline: Seasonal Naive (прогноз = значение год назад).
  4. Prophet fit с default params, кросс-валидация.
  5. Hyperparameter search: Optuna / grid search по 4–6 параметрам (например, changepoint_prior_scale, seasonality_prior_scale, fourier_order).
  6. Ансамблирование с конкурентом (ETS или NeuralProphet).
  7. Productionization: Airflow DAG, MLflow tracking, API endpoint.

Метрики сравнения: SMAPE, MASE (нормирован на Seasonal Naive), Winkler Score для интервальных прогнозов.

Сроки: настройка и обучение Prophet/NeuralProphet для одного ряда с кросс-валидацией — 1–2 недели. Production pipeline с мониторингом и автопереобучением — 4–6 недель. Экономия от точного прогноза может покрыть стоимость проекта в течение первых месяцев. Получите индивидуальное предложение — свяжитесь с нами для консультации по вашей задаче. Оценим проект и предложим оптимальное решение.