Optimalizátor předzpracování dat

Bakalářská práce na FIT ČVUT 2018

obor Znalostní inženýrství

Optimalizace metod pro předzpracování dat pro co nejlepší klasifikaci

→ text práce v PDF

O čem práce je? Pro laiky ;-)

Přemýšleli jste někdy nad tím, jak je možné, že vám Facebook, Youtube či jiná síť doporučí přesně ten obsah, který si přejete vidět? Nebo už vám brali u lékaře krev a magická krabička po analýze krve ihned odpověděla, co vám asi může být? Případně uvažovali jste někdy nad tím, jak některé chytré aplikace dokáží poznat co se nachází na daném obrázku či fotce? Všechny tyto úlohy lze v dnešní době již velice efektivně řešit, avšak stejně jako není neomylný botanik při analýze rostliny či lékař při prohlídce pacienta, většinou není neomylný i počítačový systém, který tyto úlohy řeší. Mým cílem bylo jednu z fází tvorby tohoto systému zdokonalit tak, aby konečné výsledky systému byly co nejlepší.

Pro řešení těchto úloh je v první řadě potřeba velké množství dat, na kterých daný systém naučíme. Data si můžeme představit jako soubor záznamů skoro o čemkoliv. Například soubor naměřených údajů o strojích, soubor zjištěných údajů o pacientech při vyšetření, popis vzhledů rostlin apod. Důležíté je, že těchto záznamů máme mnoho, ideálně v řádu tisíců. Stejně jako u člověka tak i u systému platí, čím více studijních podkladů máme, tím lépe se to můžeme naučit. Často se na takováto data díváme jako na tabulku, kde řádky jsou jednotlivé záznamy a sloupce odpovídají jednotlivým měřeným hodnotám. Například pokud půjde o jednoduchá data o rostlinách, tak sloupce budou pojmenovány: výška rostliny, velikost listů, barva apod. A poté každý řáděk bude jedna rostlina s vyplněnými hodnotami těchto sloupců. Pokud nám poté nějaký botanik tyto záznamy označí správnymi názvy rostlin, máme již ideální datovou sadu pro naučení našeho systému.

Při učení si systém zjednodušeně vytvoří určité asociace mezi jednotlivými hodnotami sloupců a výsledným označením. Proto poté například pro novou rostlinu, kterou neumíme pojmenovat, dokáže systém z naměřených údajů výška, barva atd. odpovědět o jakou rostlinu se s největší pravděpodobností jedná.

Nejdůležitějším faktorem pro úspěšný systém jsou tedy data, na kterých ho učíme. Tato data je potřeba pro systém vhodně připravit - předzpracovat. Například nelze dát systému data, kde je polovina hodnot nevyplněných či vyplněných nějakými chybnými či podezřelými hodnotami. Dále je vhodné data upravit pro strojové zpracování, například místo toho, abychom v datech složitě vypisovali, že rostlina je nízká, střední či vysoká, použijeme třeba jednoduché číselné označení 1, 2 a 3. Metod, jak data upravit je mnoho a jejich použití je závislé na konkréním systému. Mým cílem bylo vytvořit algoritmus, který nalezne seznam těchto metod a jejich nastavení takové, aby po jeho použití na data, naučený systém dosahoval co nejlepších výsledků.