Навчання Prophet, NeuralProphet, TimesFM

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

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