Predikce založené na machine learningových technikách nebývají nativní součástí BI nástrojů. Oproti tomu open-source programovací jazyky R a Python, které jsou pro machine learning často využívány, jsou ideálními kandidáty. Možnost maticových výpočtů a velké množství balíčků zaměřených na machine learning, statistiku a optimalizační úlohy je předurčují pro tento typ zadání. Výhody, které s sebou R/Python přináší, by však rozhodně neměly být výsadou pouze data science specialistů. BI nástroje a data science by se měly vzájemně doplňovat. Pokud nastavíme komunikaci mezi BI nástroji a R/Pythonem, získáme dvě základní pozitiva:
- Uživatelé BI nástrojů se budou moci rozhodovat na základě modelů, které vytvoří data science specialisté
- Uživatelé budou schopni využívat pokročilé statistické a optimalizační metody, aniž by museli ovládat syntaxi jazyků R nebo Python (například predikci prodeje).
Data science v Qliku
V případě Qliku je komunikace s externími výpočetními jazyky zprostředkována pomocí tzv. Server Side Extension (SSE). Velmi zjednodušeně:
- Qlik připraví potřebná data a odešle je do R/Pythonu
- V R/Pythonu proběhnou výpočty (odhad modelu, vytvoření výstupů modelů, predikce atd.)
- R/Python odešle zpět do Qliku data a ten je následně vizualizuje.
Existuje přitom více možností, jak tuto komunikaci vyvolat:
- V data load editoru Qliku (tam, kde píšete Qlik skript) napíšete R/Python skript a zadáte, která data se mají z Qliku odeslat. Následně po proběhnutí reloadu aplikace se R/Python skript vyhodnotí a vrátí do Qliku novou tabulku.
- Přímo v aplikaci je možné nadefinovat novou metriku, která bude vypočítána externě v R/Pythonu na základě údajů, které pošleme z Qliku
- Nadefinováním nové funkce, která se bude tvářit stejně jako nativní Qlik funkce, ale její výpočet bude probíhat externě v R/Pythonu. Takovou funkci je potom možné volat přímo v aplikaci jako metriku nebo v Qlik skriptu
Právě poslední variantu využil Nabeel Asif pro vytvoření SSE plug-inu PyTools. Je to vlastně soubor Python funkcí pro machine learning, které lze volat z Qliku (postup, jak PyTools nainstalovat, najdete zde). Zpracoval přitom i funkce pro nástroj Prophet — ten jsme využili i v předchozím článku.


Predikce prodeje maloobchodní společnosti
Přejděme k příkladu z minula. Firma se sítí maloobchodních prodejen potřebuje predikovat budoucí prodej v konkrétních dnech. V tomto příspěvku nepůjdeme do hloubky toho, jak by měl správně vypadat proces tvorby a testování predikčního modelu, ale spíše si ukážeme, jak jednoduché je zavolat takto předdefinovanou funkci přímo z Qlik aplikace.
Prophet má několik dobrých vlastností. Jednou z nich je, že sám automaticky detekuje a počítá sezónnosti. Pokud mu pošleme z Qliku data o historických prodejích, sám automaticky vytvoří roční a týdenní sezónní složku. Pouze na základě této časové řady tedy dokážeme jednoduše získat poměrně dobrou predikci. K tomu ještě pro naše potřeby přidáme informaci o tom, které dny mají promo akce.
Do předvytvořeného line chartu následně stačí přidat novou metriku: PyTools.Prophet_Multivariate([Date], Sum(#Sales), Promo, “, “, ‚freq=D‘). V podstatě pouze voláme funkci Prophet_Multivariate z SSE plug-inu PyTools a posíláme data z Qliku Date, #Sales, Promo. Parametrem ‚freq=D‘ říkáme, že chceme vytvořit predikci s denní frekvencí a prázdné uvozovky jsou místem, kam bychom mohli doplnit další nepovinné parametry. Výsledek:

Vraťme se ještě na chvíli k možnostem, jak vyvolat externí výpočet v R nebo Pythonu. Velkou výhodou komunikace Qlik – R/Python přes SSE je, že v případě volání funkce nebo skriptu z Qlik aplikace probíhá výpočet až v daném okamžiku. Jinými slovy, Qlik aplikace odešle do R/Pythonu data, která máte vyfiltrovaná. Pro vytvoření predikcí jednotlivých prodejen nám pak stačí tyto prodejny pouze vyfiltrovat. Na dalším obrázku můžeme vidět, jak se nový výpočet přepočítává v momentě aplikování filtrů. V případě náročnějších výpočtů je dobré mít toto na paměti a výsledky předkalkulovat při reloadu Qlik aplikace.

Věřím, že jsem ve vás vzbudil zájem o posouvání hranic analytiky Qlik Sense. Pokud vás predikce jako téma zajímají nebo máte nějaké otázky, neváhejte mě kontaktovat.
Budu vděčný za jakékoli připomínky, podněty či inspirace v komentářích nebo e-mailem na juracek@emarkanalytics.com
.