Predikcie založené na machine learningových technikách nezvyknú byť natívnou súčasťou BI nástrojov. Oproti tomu open-source programovacie jazyky R a Python, ktoré sú pre machine learning často využívané, sú ideálni kandidáti. Možnosť maticových výpočtov a veľké množstvo balíkov zameraných na machine learning, štatistiku a optimalizačné úlohy ich predurčujú na tento typ zadaní. Výhody ktoré so sebou prináša R/Python by však určite nemali byť výsadou iba data science špecialistov. BI nástroje a data science by sa mali navzájom dopĺňať. Ak nastavíme komunikáciu medzi BI nástrojmi a R/Pythonom, získame dve základné pozitíva:
- Užívatelia BI nástrojov sa budú môcť rozhodovať na základe modelov, ktoré vytvoria data science špecialisti
- Užívatelia budú schopní využívať pokročilé štatistické a optimalizačné metódy, bez toho aby museli ovládať syntax jazykov R alebo Python (napríklad predikciu predaja).
Data science v Qliku
V prípade Qliku je komunikácia s externými výpočtovými jazykmi sprostredkovaná pomocou tzv. Server Side Extension (SSE). Veľmi zjednodušene:
- Qlik pripraví potrebné dáta a odošle ich do R/Pythonu
- V R/Pythone prebehnú výpočty (odhad modelu, vytvorenie výstupy modelov, predikcie, atď.)
- R/Python odošle naspäť do Qliku dáta a ten ich následne vizualizuje.
Existuje pritom viacero možností, ako túto komunikáciu vyvolať:
- V data load editore Qliku (tam kde píšete Qlik skript) napíšete R/Python skript a zadáte, ktoré dáta sa majú z Qliku odoslať. Následne po prebehnutí loadu aplikácie sa R/Python skript vyhodnotí a vráti do Qliku novú tabuľku.
- Priamo v aplikácii je možné nadefinovať novú metriku, ktorá bude vyrátaná externe v R/Pythone na základe údajov, ktoré pošleme z Qliku
- Nadefinovaním novej funkcie, ktorá sa bude tváriť rovnako ako natívne Qlik funkcie, ale jej výpočet bude prebiehať externe v R/Pythone. Takúto funkciu je potom možné volať priamo v aplikácii ako metriku alebo v Qlik skripte
Práve poslednú variantu využil Nabeel Asif pre vytvorenie SSE plug-inu PyTools. Je to vlastne súbor Python funkcií pre machine learning, ktoré sa dajú volať z Qliku (postup ako PyTools nainštalovať nájdete tu). Spracoval pri tom aj funkcie pre nástroj Prophet – ten sme využili aj v predchádzajúcom článku.
Predikcie predaja malobochodnej spoločnosti
Prejdime k príkladu z minula. Firma so sieťou maloobchodných predajní má potrebu predikovať budúci predaj v konkrétnych dňoch. V tomto príspevku nepôjdeme do hĺbky toho, ako by mal správne vyzerať proces tvorenia a testovania predikčného modelu, ale skôr si ukážeme, aké jednoduché je zavolať takto preddefinovanú funkciu priamo z Qlik aplikácie.
Prophet má niekoľko dobrých vlastností. Jednou z nich je, že sám automaticky detekuje a počíta sezónnosti. Ak mu pošleme z Qliku dáta o historických predajoch, sám automaticky vytvorí ročnú a týždennú sezónnu zložku. Iba na základe tohto časového radu teda vieme jednoducho získať pomerne dobrú predikciu. K tomu ešte pre naše potreby pridáme informáciu o tom, ktoré dni majú promo akcie.
Do predvytvoreného line chartu následne stačí pridať novú metriku: PyTools.Prophet_Multivariate([Date], Sum(#Sales), Promo, ”, ”, ‘freq=D’). V podste iba voláme funkciu Prophet_Multivariate z SSE plug-inu PyTools a posielame dáta z Qliku Date, #Sales, Promo. Parametrom ‘freq=D’ hovoríme, že chceme vytvoriť predikciu s dennou frekvenciou a prázdne úvodzovky sú miestom, kde by sme mohli doplniť ďalšie nepovinné parametre. Výsledok:
Vráťme sa ešte na chvíľu k možnostiam ako vyvolať externý výpočet v R alebo Pythone. Veľkou výhodou komunikácie Qlik – R/Python cez SSE je, že v prípade volania funkcie alebo skriptu z Qlik aplikácie prebieha výpočet až v tom momente. Inými slovami, Qlik aplikácia odošle do R/Pythonu dáta, ktoré máte vyfiltrované. Pre vytvorenie predikcií jednotlivých predajní nám potom stačí tieto predajne iba vyfiltrovať. Na ďalšom obrázku môžeme vidieť, ako sa nový výpočet prerátava v momente aplikovania filtrov. V prípade náročnejších výpočtov je dobré mať toto na pamäti a výsledky predkalkulovať v momente reloadu Qlik aplikácie.
Verím, že som vo vás vzbudil záujem o posúvanie hraníc analytiky Qlik Sense. V prípade, že vás predikcie ako téma zaujímajú alebo máte nejaké otázky, neváhajte ma kontaktovať.
—
Budem vďačný za akékoľvek pripomienky, podnety či inšpirácie v komentoch či e-mailom na juracek@emarkanalytics.com. Tiež vás pozývam prečítať si moje ďalšie blogy.