Príprava dát je najzdĺhavejšou fázou procesu strojového učenia – zaberá až trištvrte času. Na celkový úspech je kľúčové nielen vybrať vhodný algoritmus či zhromaždiť kvantum akýchkoľvek dát, ale, a to je dôležité pochopiť, mať tie správne dáta. Práve tento bod sa však zároveň dá aj ľahko prehliadnuť. Ani celý telefónny zoznam v kombinácii s tým najlepším algoritmom totiž nikomu nepomôže vygenerovať telefónne číslo podľa konkrétneho priezviska, lebo medzi nimi neexistuje vzťah. Mať tie vhodné dáta je preto pre strojové učenie nevyhnutné.

Dobre usporiadané správne dáta sú všetko

Treba si uvedomiť, že algoritmus strojového učenia je možno nie úplne triviálna, ale stále len matematická funkcia. Pracuje s číselnými údajmi, ktorých významu síce nerozumie, no vie ich spracovať a vygenerovať výsledný model. Ten však bude robiť to, čo potrebujeme, len vtedy, ak mu podsunieme tie správne údaje a spracujeme ich do vhodnej podoby. Ten istý algoritmus môže byť dobrý na výpočet firemného zisku, výskytu zubného kazu aj počtu narodených kačíc – všetko závisí len od vstupných dát. Bežnou formou vhodnou ako vstup je číselná matica, kde riadky reprezentujú jednotlivé záznamy a v stĺpcoch sú ich atribúty. Pri asistovanom učení reprezentuje jeden zo stĺpcov predpovedanú hodnotu. Preto aby sa stroj vedel niečo „naučiť“, potrebujeme údaje pospájať tak, aby všetky k danej hodnote boli v jednom riadku. Presnosť výsledného modelu závisí od množstva dát, ale spoločne s ním a so zložitosťou dátových schém narastá aj náročnosť tejto úlohy.

Tri kroky prípravy dát

Príprava vhodných dát do požadovanej formy prebieha v týchto fázach:

1. Výber dát

Najprv treba vyriešiť pripojenie na rôzne zdroje, počínajúc od relačných databáz cez rôzne nerelačné zdroje, ako sú XML, text či JSON, až po zdroje tretích strán, ako HTML či CSV. Nie je potrebné použiť všetky údaje, ktoré máme k dispozícii. Napríklad vzťah medzi vekom a výškou človeka je úmerný, ale len do veku, povedzme, pätnásť rokov. Ak tvoríme model, ktorý má predpovedať dopyt po hračkách, môžeme použiť aj atribút výšky, ale atribút veku je podstatnejší a mal by mať prinajmenšom vyššiu váhu, respektíve by pravdepodobne stačil aj sám osebe a atribút výšky je možné vypustiť.

2. Predpríprava

Okrem toho, že dáta je potrebné upraviť do vhodného formátu, môže sa stať, že budú obsahovať medzery, ktoré treba doplniť, či ešte horšie, môžu mať chyby, ktoré musíte napraviť. Dôležité je tiež vytvoriť malú, ale reprezentatívnu vzorku, ktorá sa hodí na testovanie, ladenie výkonu a podobne.

3. Transformácia

Okrem spomínaného pridelenia váh jednotlivým atribútom je často potrebné meniť aj váhu jedného atribútu v čase – napríklad zvyčajne má nedávna história väčší vplyv ako staršie dáta. Neštruktúrované údaje, ako sú obrázky, video či zvuk, je potrebné pretransformovať do číselných atribútov. Tu vie čoraz viac pomôcť cloud – taká platforma Azure dokáže získať informácie z obrázkov vo forme funkcie volanej cez rozhranie API. Na rozdelenie dát do oddelených kategórií je možné použiť hotové algoritmy na báze strojového učenia. Niektoré algoritmy potrebujú dáta v konkrétnej podobe, niektoré pracujú lepšie s diskrétnymi číslami, iné so spojitými údajmi. Pre niektoré nie je problém spracovať veľké množstvo atribútov, pre iné je potrebné držať ich počet na prijateľnej úrovni.

Príprava dát tvorí najväčšiu časť strojového učenia nielen časovo, ale aj významovo. Známe tvrdenia o tom, že dáta sú všetko, tak viac naberajú na pravde. Dáta treba pochopiť. Je potrebné im rozumieť v kontexte ich vplyvu na úlohu, ktorú potrebujeme vyriešiť. Až potom nastáva čas na výber vhodného algoritmu. O tom si však povieme nabudúce.


Aktuálne novinky nielen z diania vo firme

Blockchain vo svete financií

Blockchain sa hodí všade tam, kde viacero strán potrebuje hodnoverne ukladať a vymieňať hodnoty, pričom žiadna zo zúčastnených strán nemá