Прогнозування часових рядів — ключова задача для планування продажів, закупівель та завантаження потужностей. Нещодавно один з наших клієнтів — мережа роздрібних магазинів з 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 тижнів. Економія від точного прогнозу може покрити вартість проєкту протягом перших місяців. Отримайте індивідуальну пропозицію — зв'яжіться з нами для консультації щодо вашого завдання. Оцінимо проєкт і запропонуємо оптимальне рішення.







