Прогнозирование временных рядов — ключевая задача для планирования продаж, закупок и загрузки мощностей. Недавно один из наших клиентов — сеть розничных магазинов с 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):
- Подготовка данных: ресемплинг к нужной частоте, обработка пропусков (interpolation / forward fill).
- Анализ: ACF/PACF, decompose, holiday analysis.
- Baseline: Seasonal Naive (прогноз = значение год назад).
- Prophet fit с default params, кросс-валидация.
- Hyperparameter search: Optuna / grid search по 4–6 параметрам (например, changepoint_prior_scale, seasonality_prior_scale, fourier_order).
- Ансамблирование с конкурентом (ETS или NeuralProphet).
- Productionization: Airflow DAG, MLflow tracking, API endpoint.
Метрики сравнения: SMAPE, MASE (нормирован на Seasonal Naive), Winkler Score для интервальных прогнозов.
Сроки: настройка и обучение Prophet/NeuralProphet для одного ряда с кросс-валидацией — 1–2 недели. Production pipeline с мониторингом и автопереобучением — 4–6 недель. Экономия от точного прогноза может покрыть стоимость проекта в течение первых месяцев. Получите индивидуальное предложение — свяжитесь с нами для консультации по вашей задаче. Оценим проект и предложим оптимальное решение.







