Zpět na domů

Předpověď prodejů: od Excelu k ML za půl roku

Článek popisuje transformaci systému předpovídání prodejů pro službu doručení: od roztroušených modelů k ansámblu s TSMixer a Excelem. Zaměření na předvídatelnosti a důvěře byznysu prostřednictvím rolling backtestu. Výsledek: chyba <5 % za měsíc.

Od zoo předpovědí k ansámblu ML: případ doručení
Advertisement 728x90

Prognóza prodejů pro podnikání: od Excelu k ML-ansamblům za půl roku

Podnikání se rozhoduje na základě prognóz prodejů: spustit akci nebo upravit rozpočet. Průměrná chyba modelu 4,5 % MAPE vypadá ideálně, ale jedna chyba o 20 % zničí důvěru. Ředitelé ignorují čísla, provádějí ruční úpravy a zbytečně vynakládají rozpočty z obav, že nedosáhnou cíle. Klíčový požadavek podniku je předvídatelnost: uzavřeme měsíc bez katastrofálních chyb?

Cílem projektu bylo vybudovat spolehlivou prognózu prodejů, objednávek a obratu na 45 dní dopředu pro velký služební dopravní systém na úrovni celé společnosti (79 měst, tisíce centrálních formací objednávek).

Původní školka modelů

Existující přístupy zahrnovaly:

Google AdInline article slot
  • Prophet na úrovni každého centra: tisíce modelů pro logistiku. Problematika: nepočítá nová centra (odhadováno v Excelu), přesnost nebyla ověřena na agregované úrovni země, optimalizace zaměřená na denní přesnost, nikoli měsíční plán.
  • Excel s roční sezónností: fakt z minulého roku × koeficient růstu (např. 1,15 při +15 %). Ocenění vizuální, bez metrik.
  • Prophet na úrovni země: s hyperparametry, vnějšími znaky (makroekonomika, svátky, plánované slevy). Průměrná chyba 1–2 %, ale na krátké validaci – artefakt.

Expertní Excelové metody byly neopakovatelné. Všechny přístupy vyžadovaly jednotné porovnání.

Poctivý rolling backtest jako základ

Pro objektivní hodnocení byl implementován 12-měsíční rolling backtest: simulace denních prognóz na historii s přetrénováním po každém novém dni. Toto testuje model v reálných podmínkách – růst, propady, akce, svátky.

Proces backtestu:

Google AdInline article slot
  • Den 1: trénink na datech do 1. ledna → prognóza na 45 dní.
  • Den 2: přidání skutečnosti 1. ledna → přetrénování → nová prognóza.
  • Opakování až do konce roku.

Excelová sezónnost byla převedena do Pythonu – stala se základním modelem. Prophet na úrovni centra: optimistické výsledky (bez nových center). Prophet na úrovni země: odhaleny problémy s proměnnými (plánované slevy vs. skutečnost).

Výsledek: základní model (Excel) ukázal předvídatelnost, ML přinesl krásné průměry, ale nestabilní chyby.

Excel převyšuje Prophet: lekce jednoduchosti

Neočekávaný výsledek backtestu: Excel s roční sezónností překonal Prophet podle klíčové metriky – kumulativní chyby za měsíc (relevantní pro business). Prophet vyhrál na denní přesnosti, ale selhal na dlouhém horizontu kvůli přetrénování na tendencích.

Google AdInline article slot

Srovnání metrik:

  • MAPE (průměrná absolutní procentní chyba): Prophet lepší.
  • Kumulativní chyba za 30/45 dní: Excel vedoucí.

Prophet rozkládá řadu na trend, sezónnost (dny/měsíce/roky), svátky + známé proměnné. Omezení: jeden řad, proměnné známy dopředu.

Přechod k granularitě: města a ML

Pro zlepšení rozdělili prognózu na úroveň měst (79). To umožnilo zohlednit lokální efekty: různé dynamiky poptávky, nová centra.

Zavedli klasiku ML:

  • Gradient boosting (LightGBM/XGBoost) s lagy, klouzavými průměry, dummy proměnnými pro dny v týdnu/svátky.
  • Proměnné: historické lagy (1–30 dní), růst YoY, vnější (svátky).

Výsledek: zlepšení nad základním modelem o 10–15 % podle kumulativní chyby, ale ne radikálně. Problémy: slabý zachycení nelineárních vzorů, citlivost na anomálie.

TSMixer: průlom a limity

Přešli k neuronovým sítím. TSMixer (Temporal Sparse Mixer) – state-of-the-art pro vícerozměrné časové řady. Funkčně jako MLP-Mixer pro čas: kanály jsou nezávislé, zachytává křížové závislosti mezi kanály bez rekurentních vrstev.

Architektura:

  • Past/Future towers pro historické a budoucí proměnné.
  • MLPMixer bloky: token mixing (podle času) + channel mixing.
  • Měřítko: O(L * D) místo O(L²) u transformátorů.

Trénováno na 79 městech × 3 metrikách (prodeje/objednávky/obrat). Backtest: TSMixer překonal základní model o 25 %, gradientní boosting o 12 %. Slabiny: stále zpožděný na svátcích, vyžaduje mnoho dat.

Finální ansambl: kombinace sil

Jediná prognóza – ansambl:

  • Excel sezónnost (30 % váhy): stabilita na dlouhých tendencích.
  • Gradientní boosting (40 %): lokální vzory.
  • TSMixer (30 %): nelinearity.

Váhy byly nastaveny podle stack-rank na backtestu (součet ranků podle metrik). Výsledek: MAPE 3,2 %, kumulativní chyba za měsíc <5 % v 95 % případů. Předvídatelnost stoupla: podnik přijal čísla bez úprav.

Co je důležité:

  • Předvídatelnost je důležitější než průměrná přesnost: zaměření na kumulativní chybu za období.
  • Rolling backtest – zlatý standard hodnocení.
  • Ansambl porazil čisté modely: jednoduchost + ML.
  • Granularita (města) je lepší než agregace.
  • Podnik věří, když model vydrží testy stresu (svátky, propady).

Shrnutí transformace

Za půl roku z školky vytvořili P.E.S.E.C. – denní strategickou prognózu. Podnik ji používá pro rozhodování bez paniky. Klíč: poctivé hodnocení, zaměření na business metriky, kombinace přístupů.

— Editorial Team

Advertisement 728x90

Číst dál