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:
- 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:
- 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.
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
Zatím žádné komentáře.