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