Blog – články

KNIME Analytics Platform

KNIME Analytics Platform je tzv. open source software, tedy software dostupný pro koncové uživatele zdarma, který slouží pro vytváření datových aplikací.

Knime je velmi intuitivní a efektivní nástroj pro tvorbu datových analýz a scénářů strojového učení.

Software je vyvíjen universitou ve Švýcarsku a je finančně podporován nadnárodními firmami, které tak umožňují neustálý rozvoj této platformy a nabízí tak přes dva tisíce pracovních uzlů, tzv. Knime NODES.

Práce v Knime analytics platform probíhá v tzv. workflow, jež je souborem .knwf. Platforma využívá podobných funkcionalit co se týče práce se souborem tak, jak jsme zvyklí u Microsoftu, tedy používá podobné menu, podobné klávesové zkratky. Soubory je možné organizovat ve složkách a různě s nimi manipulovat stejně jako v prostředí Windows.
Samotná práce s daty pak probíhá ve workflow a to pomocí uzlů, tzv. nodes, které jsou organizovány v Node repository. Uzly jsou seřazeny do skupin dle typu práce.
Velkou výhodou Knime je, že nemusíte být programátorem a přesto jste schopni vytvořit datové analýzy, zpracovat modely strojového učení a pracovat s big daty.
Knime v porovnání s některými jinými softwary je schopný zpracovat obrovská množství dat s celkem dobrým časovým výkonem.

Jak s Knimeme pracovat?

Knime Analytics Platform lze jednoduše stáhnout na www.knime.com a snadno nainstalovat do vašeho počítače.
Pak již jen otevřete nové workflow a postupujete tak, že pomocí tzv. reader nodes, tedy uzlů, které vám umožní načíst vaše data z široké možnosti typů, jako je excel, csv, txt, sql databáze a mnoho dalších, natáhnete data do Knime.
Dále data můžete různě transformovat a modifikovat pomocí tzv. manipulation nodes, tedy uzlů, které slouží k tzv. data wrangling, tedy přípravě dat. Příprava dat je nejvíce časově náročná v rámci celého procesu strojového učení a datových analýz a pro případné závěry, predikce či reporty potřebujete mít data vypovídající a čistá.
Knime tak nabízí nesčetné množství těchto manipulačních uzlů, včetně matematických výpočtů, změn datových typů, různé filtry a kombinace, spojování datových setů, nabízí řešení pro chybějící hodnoty v datech apod.

Po úpravě dat pak můžete využít několik view nodes, tedy grafů pro vizualizaci dat. Najdete zde standardní grafy, jako jsou liniový, sloupcový, koláčový, ale také např. box plot, který ukáže distribuci číselných hodnot do statistických skupin – median, maximální a minimální hodnota a kvartily.
Grafy lze použít „standardní„, a nebo tzv. java script grafy, které umožňují vizuálně pěkné zpracování a více možností v konfiguraci.

Uzly se vždy napojují na sebe, tedy postupně, jak jdou za sebou a než se spustí program v uzlu, musí se nakonfigurovat, tedy nastavit a pak spustit. Zároveň si u každého uzlu můžete ověřit výstup, který jste tímto uzlem dosáhly.

Knime a datová věda

Samozřejmě, protože se jedná o nástroj pro datové vědce, v Knime naleznete snad všechny techniky strojového učení v oblasti regrese, klasifikace, clusteringu, asosiačních analýz, ale i tzv. deep learning metody – strojové učení pomocí hlubokých neuronových sítí.

Zkušenosti k Knimem

Já osobně Knime využívám zejména pro prediktivní analytiku ve výrobě a financích, kde pracujeme s daty převážně z Excelů (reporty ze SAP, BW), z CSV a z SQL serveru.


Z mého pohledu je Knime velmi intuitivní a rychlý nástroj, který když dostanete do ruky, tak jste schopni vytvořit model velmi rychle (samozřejmě záleží na kvalitě dat, kterou dostanete jako vstup) a získat pěkné vizuály, statistická vyhodnocení a prediktivní analýzy.

Kde se Knime naučit

Všeobecná školení anglicky: https://www.knime.com/resources

Prezenční kurzy v češtině: https://www.elderberrydata.com/datova-veda/

Praktický on-line kurz na Udemy.com: https://www.udemy.com/data-analyzing-and-machine-learning-hands-on-with-knime/

Autor článku: Ing. Barbora Štětinová MBA

Profil: https://www.linkedin.com/in/barbora-stetinova-19304910b/?originalSubdomain=cz

MS Excel – doporučené minimum

MS Excel obsahuje velké množství vzorců a funkcí. (Tak velké množství, že jen málokdo umí využít byť jen čtvrtinu z nich.) Zde uvádím mé oblíbené funkce, praktické pro aplikovanou datovou vědu. Nebudu se rozepisovat, funkce jsou dobře zdokumentované, včetně příkladů.

Vzorce

SUMIF

Pomocí funkce SUMIF můžete vypočítat součet hodnot v určité oblasti, které splňují zadané kritérium.

COUNTIF

Funkci COUNTIF patří mezi statistické funkce. Můžete jí používat ke zjištění počtu buněk, které splňují určité kritérium, třeba ke spočítání, kolikrát se konkrétní město zobrazuje v seznamu zákazníků.

NAJÍT

Funkce je šikovná při dynamickém vyhledávání řetězců, a umožní nám snadno získat lépe strukturovaná data z jen částečně uspořádaných dat. Viz obrázky – funkce NAJÍT v kombinace s funkcí ZLEVA a ČÁST:

SVYHLEDAT

Funkci SVYHLEDAT, jednu z vyhledávacích funkcí, použijte, když potřebujete něco najít v tabulce nebo v oblasti buněk podle řádku. Můžete třeba vyhledat cenu automobilového dílu podle čísla daného dílu, nebo ve výpisu telefonních hovorů najít telefonní číslo a přiřadit mu jméno.

INDEX MATCH

Pomocí kombinace funkcí INDEX a MATCH (česky POZVYHLEDAT) dostaneme pokročilou možnost vyhledávání. Příklady a vysvětlení najdete např. zde: https://www.deskbright.com/excel/using-index-match/

Volby na záložce Data

Text do sloupců

Umožňuje rozdělit text, který je v jednom sloupci do několika sloupců, např. na základě oddělovače. Takto lze rozdělit sloupec, kde je jméno a příjmení, na dva sloupce – jeden se jménem, druhý s příjmením.

Odebrat duplicity

Odebere duplicitní hodnoty, a to jak v jednom sloupci, tak ve více sloupcích. Takto můžeme snadno odhalit a odstranit duplicitní řádky, i ve velké tabulce. Po provedení této operace snadno získáme unikátní kombinace dat v tabulce.

Načíst data

Zde je možné načíst data z externích zdrojů – z webu, SQL databáze, několik souborů z jedná složky, apod. Pod touto volbou se skrývá mocný nástroj Power Query. V Power Query si můžete data nejen načíst, ale i sofistikovaně upravit, spojit apod. Seznámení s Power Query je např. zde: https://office.lasakovi.com/excel/Query-editor/jak-na-power-query-editor-Excel-serial/

Volby na záložce Vložení

Kontingenční tabulka

Skvělá volba pro rychlou analýzu dat. Pokud neznáte, nejlépe se naučíte jejím používáním. Kontingenční tabulka je dynamická, doporučuji používat v kombinaci s kontingenčním grafem. Někdy se lidé kontingenčních tabulek bojí – asi je to tím „vědátorským“ názvem. Strach ale není na místě, kontingenční tabulky jsou komfortní na používání a snadno pochopitelné.

Tabulka

Tato volba vytvoří „Tabulku“ – tj. speciální „chytrou“ tabulku, která vznikne z „normální“ tabulky. Na této „chytré“ tabulce jde pak provádět řezy, pokud do ní přidáme řádek, sami se nakopírují použité vzorce, apod.

„Chytrá“ tabulka se vloženými průřezy – pro dynamické filtrování.

Ostatní

A samozřejmé třídění, filtrování, grafy, další funkce,… (Zde jsem chtěl vypíchnout méně známé funkce, s praktickým použitím v datové vědě. MS Excel je velmi dobře zdokumentovaný…)

PYTHON

Python je vysokoúrovňový programovací jazyk, který pomáhá datovým vědcům na celém světě vyvinout, odladit a aplikovat modely pro strojové učení a umělou inteligenci. Jazyk je oblíbený pro svou jednoduchost, snadnou dosažitelnost, a širokou komunitu, která jazyk dále aktivně vyvíjí, podporuje, a rozšiřuje o nejnovější poznatky na poli datové vědy.

Abyste porozuměli příkladům z aplikovaného strojového učení, které zde budeme postupně publikovat, je třeba, abyste chápali základy tohoto jazyka.

Získat základy je poměrně snadné.

On-line kurz

Můžete například absolvovat náš specializovaný on-line kurz v češtině „Úvod do jazyka PYTHON pro datovou vědu“ https://www.elderberrydata.com/python/

Webové zdroje

Nebo můžete projít např. tímto free webovým kurzem obecného Pythonu:https://naucse.python.cz/course/pyladies/

Zdroje v angličtině

Těchto zdrojů je hodně. Mám dobré zkušenosti se specializovanými kurzy na Data Campu (mají i praktickou mobliní aplikaci), úvod do Pythonu pro datovou vědu je zde: https://www.datacamp.com/courses/intro-to-python-for-data-science

Jupyter Notebook

Co to je

Jupyter Notebook je interaktivní webová aplikace, umožňující vytvářet a sdílet živé textové dokumenty, které obsahují spustitelný programový kód, formátovaný i neformátovaný text, statické obrázky, rovnice, i dynamické vizualizace.

Jupyter_Small

Pokud by vás zajímala historie, či detaily o architektuře Jupyter Notebooku, podívejte se např. sem: https://www.datacamp.com/community/tutorials/tutorial-jupyter-notebook

K čemu to je

Jupyter Notebook je globálně rozšířená a akceptovaná open-source platfroma pro statistické modelování, přípravu dat, čištění a transformaci dat, číslicové modelování, strojové učení, vizualizaci dat, a ještě mnohem víc.

Jupyter Notebook používají datoví vědci, analytici, programátoři, studenti i akademici. Jupyter Notebook se používá k výuce programování, statistiky, i strojového učení.

Jupter Notebook tvoří základ analytické sítě Kaggle.com, ale najdete ho například i na platformě pro algoritmické obchodování s cennými papíry Quantopian.com.

Typický příklad použití: Jupyter Notebook se používá k pořízení dat (např. z webových zdrojů, z lokální sítě, z SQL databáze,…), pak k vlastní analýze takto pořízených dat, i k její dokumentaci a prezentaci.

V Jupyter Notebooku lze také vyvinout model pro strojové učení, pak ho zde vytrénovat, otestovat, validovat, zdokumentovat, prezentovat, a vyexportovat pro produktivní nasazení.

Jaký programovací jazyk lze použít

Nejrozšířenější použití Jupyter Notebooku je v kombinaci s jazyky Python a R. Ale existuje mnoho dalších kernelů pro Jupyter Notebook (PHP, Ruby, Julia,… – úplný seznam je zde: https://github.com/jupyter/jupyter/wiki/Jupyter-kernels)

Ukázky práce s Jupyter Notebookem používají jazyk Python. Python patří k nejvíce používaným programovacím jazykům současnosti a má za sebou velkou komunitu. (viz výzkum Stackoverflow z roku 2018: https://insights.stackoverflow.com/survey/2018/#technology-programming-scripting-and-markup-languages)

Python

Kde lze Jupyter Notebook pořídit

Velmi praktické „balení“ Jupyter Notebooku je v rámci tzv. Anaconda distribuce. Anaconda obsahuje nejen Jupyter Notebook, ale i samotný jazyk Python. Pokud si tedy nainstalujete Anaconda Navigator (rovněž open-source), již se nemusíte starat o to, jak a kde získat jazyk Python (nebo jazyk R, který je v Anaconda navigátoru také k dispozici).

Anacond navigator

Link na stažení Anacondy je zde (pro Windows, macOS i Linux): https://www.anaconda.com/download/ Aktuální verze Anacondy (říjen 2018) používá Python 3.7.

Jupyter Notebook lze také vyzkoušet on-line, přímo na http://jupyter.org/try. Vyzkoušet lze i JupyterLab, což je Jupyter Notebook s přidanými vyššími/ lepšími funkcemi (náhledy souborů, přehledný strom složek a souborů, záložky, možnost spolupráce, zabezpečení).

Verze Jupyter Notebooku od Googlu se nazává Colaboratory (https://research.google.com/colaboratory/) .

Podobný notebook, který lze připojit např. na Apache Spark je Apache Zeppelin Notebook (https://zeppelin.apache.org/).

Databáze

SQL databáze

Zjednodušeně jde o databázi, kde jsou strukturovaná data uložena tabulkách.  Jeden, nebo více sloupců každé tabulky může obsahovat klíčovou hodnotu, pomocí které lze tabulku propojit s jinými tabulkami (tzv. relace -> relační databáze). Data se ukládají, organizují, transformují, spojují, mažou, apod. pomocí jazyka SQL. Jazyku SQL se budeme věnovat detailněji.

Příklady SQL databází: Oracle, MS SQL, Maria DB, PostgreSQL, Impala, MS Access

NoSQL databáze

Původně skutečně „No-SQL“ databáze, nyní spíše „Not-Only-SQL“ databáze.

Příklady NoSQL databází: MongoDB,

Základní datové formáty

Datové formáty

  • CSV

CSV je často používaný formát pro ukládání a výměnu strukturovaných dat. CSV je zkratka pro „Comma Separted Values = Hodnoty oddělené čárkami“. Pro oddělení hodnot se používají nejen čárky, ale také  středníky. Když budete například stahovat data o počasí, nebo kupovat data o prodejích konkurenčních firem, bude velmi pravděpodobně CSV jako jeden z možných datových formátů.

Příklad – soubor produkty.csv (nahrát + odkaz na příklad, nebo obrázek)

nazev;typ;cena_bezDPH;cena_sDPH;mena
Borůvky kanadské 50g;ovoce;100.00;121.00;Kč
Rib Eye Stake 600g;maso a uzeniny;360.00;435.60;Kč

  • JSON

JSON = „JavaScript Object Notation  = JavaScriptový objektový zápis“ je dalším častým formátem pro ukládání a výměnu dat. Do formátu JSON lze zapsat jakoukoli stukturu dat, včetně hierarchické. Příklad uvádím níže, detaily najdete zde JSON.

Příklad:

JSON_příklad

[ {„nazev“: „Borůvky kanadské 50g“, „typ“: „ovoce“, „cena_bezDPH“: „100.00“, „cena_sDPH“: „121.00“, „mena“: „Kč“}, {„nazev“: „Rib Eye Stake 600g“, „typ“: „maso“, „cena_bezDPH“: „360.00“, „cena_sDPH“: „435.60“, „mena“: „Kč“}]

  • XML

A do třetice další často používaný formát, ve kterém můžete obdržet, nebo vytvořit datové soubory – XML = „eXtensible Markup Language = rozšiřitelný značkovací jazyk“.

CSV, JSON a XML jsou také formáty, ve kterých můžete získat tzn. Open Data (viz např. formáty Open data o čerpání státního rozpočtu Formáty-příklad z praxe)

Příklad:

XML_příklad

<?xml version=“1.0″ encoding=“UTF-8″?>
<produkty>
<nazev>Borůvky kanadské 50g
<typ>ovoce</typ>
<cena>
<bezDPH>100.00</bezDPH>
<sDPH>121.00</sDPH>
<mena>Kč</mena>
</cena>
</produkty>

Kaggle

Kaggle_logo

https://www.kaggle.com

Kaggle je webová platforma pro analytiky. Zde je možné se opravdu hodně naučit, hlavním tématem je strojové učení, Big Data, analýza dat.

Zde můžete sledovat, jak ostatní analytici řešili nějaký datový problém, můžete hlasovat, jak vám jeho vysvětlení pomohlo, můžete si jeho řešení zkopírovat a pak ho dále rozpracovat, můžete o řešení diskutovat s ostatními kolegy, apod. Aktivitou vám roste úroveň – od novice po mistra. Můžete mít následovníky (followers), apod.

Kernel_sample

Kaggle je také velmi zajímavý tím, že jakákoli firma, nebo organizace, může vyhlásit soutěž, z cílem vyřešit nějaký analytický problém. Firma poskytne data, popis situace, zadání + cíl, a hodnotící kritéria. Do této soutěže je možné se přihlásit, a své řešení publikovat. Výherci pak mohou získat vypsanou odměnu, která může být až v řádu milionu amerických dolarů.

Řešení, která jsou publikovaná, či diskutovaná v Kagglu, je možné spustit – většina řešení je publikovaná jako aktivní Jupyter Notebook, notebooky jsou psány buď v Pythonu, nebo v jazyce R. (viz informace o Jupyter Notebooku ***LINK***).

Jak s Kagglem (pro začátek) pracovat

Např. můžete hledat téma „predikce fluktuace zaměstnanců“ a najít k němu řadu publikovaných řešení. Pak si vyberete tři nejlépe hodnocená řešení, ta si otevřete, spustíte, a pokud pro vás budou zajímavé, můžete si je zkopírovat to vlastní verze, a na té pak pracovat. Výsledek si můžete stáhnout a použít ve svém lokálním Jupyter Notebooku, případně zavést do svého analytického scénáře, či projektu.

Kaggle však obsahuje i školící materiály, nejvíce přínosná mi přijdou vysvětlení nějaké problematiky, provedená formou (často bohatě komentovaného) Jupyter notebooku.

Příklady z Kagglu

Soutěž – vyhlásil Bosch – Kaggle – Bosch

Školící notebooky

Data analysis with Pandas

Dimensionality reduction

Datasety pro poučení a „na hraní“

HR data