Co je to data mining?
Při data miningu často dochází k následujícím situacím: Počítač zpracovává velmi rozsáhlé statistické soubory, které obsahují různé typy informací a velké množství proměnných. Údaje se musí extrahovat z databáze, podnikového informačního systému nebo z více zdrojů najednou. Často chceme, aby počítač automaticky generoval velké množství různých hypotéz, které pak automaticky otestuje. Klademe důraz na různé speciální způsoby vizualizace dat, které výrazně usnadní interpretaci výsledků. Příklady úloh řešených metodami data miningu jsou:
-
navrhování a sledování účinnosti marketingových kampaní,
-
vyhodnocování klinických testů nových léků, testování stravovacích doplňků,
-
navrhování bezpečnostních opatření u složitých průmyslových provozů a strojů,
-
analýza provozu a optimalizace serverových řešení,
-
zkoumání zákonitostí změn klimatu podle dlouhých časových řad meteorologických měření,
-
vytváření různých sociologických prognóz,
-
plánování burzovních a měnových spekulací.
V „klasické statistice“ se nejprve vysloví několik alternativních hypotéz. Pak se provedou statistické výpočty a vybere se nejlepší hypotéza. Nakonec se stanoví například s pomocí modelu ANOVA, zda je závěr prokázán na dostatečné hladině spolehlivosti. Naproti tomu při data miningu se nejprve provede velmi rozsáhlé statistické zpracování různých aspektů statistického souboru a ve výsledcích zpracování se identifikují netriviální užitečná zjištění. V praxi již mnohdy samotné statistické zpracování dostačuje k učinění rozhodnutí a úsilí o pochopení souvislostí se stává zbytečné.
Metody práce založené na data miningu jsou akceptovány v přírodovědných oborech a v mnoha humanitních oborech. Avšak v některých oblastech se vedou o adekvátnosti těchto postupů metodologické spory a někdy jsou některými odborníky odmítány jako pseudovědecké (např. v historické lingvistice mass lexical comparison).
Vizuální programování
Všechny tři programy vycházejí z myšlenky vizuálního programování, kdy si uživatel „nakreslí“ algoritmus a nakliká různá nastavení. Tuto koncepci vysvětlím prostřednictvím komentářů ke screenshotu z prostředí KNIME. Princip práce v Orange a RapidMineru se neliší.
Na obrázku vlevo vidíme seznam uzlů (nodů) a vpravo „nakreslený“ projekt. (V terminologii Orange se nazývají uzly widgety a v terminologii RapidMiner operátory.) Jednotlivé uzly vykonávají různé činnosti, lze je různě nastavit a především propojovat jejich vstupy a výstupy. Na obrázku vidíme uzel „Data Generator“, který vygenerovaný výstup posílá do uzlu „Statistics“, který napojuje svůj výstup na vstup uzlu „Box Plot“ (Krabicový diagram). Dále další výstup z „Data Generator“ směřuje do „Association Rule Learner“. Hledání asociací tímto algoritmem vyžaduje jinak strukturovaná data a na nekompatibilitu typů z výstupu „Data Generator“ se vstupem „Association Rule Learner“ upozorňuje červená barva na semaforu a výstraha, jejímž rozkliknutím se zobrazí vysvětlující komentář. Uzel „Association Rule Learner“ smažu a provedu zpracování dat. Výsledný krabicový diagram si zobrazím pomocí volby „View: Box Plot“ z kontextové nabídky uzlu.
Kontextová nabídka uzlu v KNIME
Veškerá funkcionalita se soustředí do uzlů, které mohou plnit různé úkoly.
-
Uzel extrahuje data z databáze nebo souboru. Dalšími možnými zdroji dat jsou: generátor náhodných dat a manuální editace dat.
-
Uzel počítá statistické charakteristiky a provádí strojové učení.
-
V rámci pomocných úprav se mohou slučovat výstupy z více datových zdrojů, filtrovat data, vybrat z příliš velkého statistického souboru menší reprezentativní vzorek, měnit strukturu dat...
-
Uzel vytváří grafy a různá schémata.
-
Uzel extrahuje informace a ukládá je do databáze nebo souboru.
-
Samozřejmě časté jsou kombinace různých výše uvedených úkolů v jednom uzlu.
V praxi obsahuje jeden projekt až několik desítek různých uzlů. Výuková videa k základům uživatelského rozhraní nabízejí na svých oficiálních stránkách KNIME a RapidMiner.
Možnosti využití aplikací
Popis jednotlivých metod a úplný výčet schopností jednotlivých programů přesahuje možnosti tohoto článku, proto nastíním jen hlavní okruhy využití tohoto typu softwaru. Regresní analýza umožňuje aproximovat skutečné hodnoty různými teoretickými závislostmi a stanovit kvalitu tohoto modelu. Další důležitou aplikací je rozdělení jevů podle jejich podobnosti do clusterů (shluků). Například můžeme získat marketingovou segmentaci klientů podle analýzy nákupních košů, rozdělit politické strany podle hlasování v parlamentu, rozdělit vzorky benzínu podle jejich chemického složení... Podle blízkosti dokáže program zařazovat jednotlivé prvky do hierarchie zobrazované prostřednictvím stromových grafů (dendrogramy). Další důležitou aplikací je navrhování efektivních rozhodovacích stromů. Strojové učení zahrnuje různé algoritmy hledání asociací, genetického programování, využití konceptu neuronových sítí...
Všechny tři aplikace jsou dostupné jako svobodný software a mají dobře dokumentovaná aplikační rozhraní, takže vytváření nových specializovaných uzlů není obtížné. Ke všem třem programům se dají doinstalovat volně dostupná různá rozšíření. Ke KNIME a RapidMineru lze zakoupit množství různých komerčních služeb, avšak jejich cena zřejmě bude značně limitujícím faktorem. Například cena podpory jedné instalace KNIME začíná již na „pouhých“ dvou tisících eurech (necelých padesát tisíc korun) za rok.
Orange
Uzel SOM lze napojit za uzel Outliners více způsoby
Orange je ze tří uváděných prostředí nejmenší. Zároveň však nabízí nejjednodušší uživatelské rozhraní, které nezatěžuje přítomností mnoha jen zřídka používaných voleb. O tom, že již základní instalace Orange obsahuje všechny základní prostředky pro data mining, se můžete přesvědčit v pěkné online nápovědě. Zdrojové kódy Orange jsou k dispozici na oficiálních stránkách pod licencí GPLv2. Grafické rozhraní Orange tvoří widgety PyQt, novou funkcionalitu lze snadno naskriptovat v Pythonu, výpočetně kritické části jsou napsány v jazyce C++.
Ukázka části seznamu uzlů z online nápovědy
KNIME
Aplikace KNIME (the Konstanz Information Miner) je odvozena od platformy Eclipse. Tomu odpovídá i podobnost uživatelského rozhraní a mimořádná modulárnost produktu, který lze rozšiřovat stejným způsobem o nové perspektivy a pohledy jako Eclipse. Pro KNIME existují hodnotná rozšíření především v oblasti biochemie a KNIME se těší mimořádné popularitě ve výzkumu ve farmaceutickém průmyslu.
Oficiálně jsou pro KNIME certifikovány jen distribuce SLED 10 a 11, RHEL 5 a 6 a Fedora 10 a 11, ale pochopitelně aplikace funguje i pod jinými distribucemi. Prostředí KNIME chrání licence GPLv3. Podle právního názoru výrobce nejsou nové uzly odvozeným dílem od KNIME a tedy se na nové uzly nevztahuje licence GPLv3, která chrání KNIME. Vzhledem k platformě Eclipse je nejpřirozenější volbou pro vytváření rozšíření jazyk Java, ale použít lze i Python a další jazyky.
Ukládání velkých tabulek na disk šetří operační paměť
Vnitřní návrh KNIME obsahuje některá nastavení pro snížení hardwarových nároků. Například u uzlů lze explicitně určit místo uchovávání výstupů před dalším zpracováním, což ukazuje obrázek.
RapidMiner
Na rozdíl od KNIME se RapidMiner, známý též pod starším jménem YALE (Yet Another Learning Environment), soustředí na oblast marketingu a finančnictví. RapidMiner je řešen čistě v Javě, takže je dokonale multiplatformní. (Spustitelný soubor rapidminer.jar se ve zdrojových kódech nachází v adresáři /lib.) Další výhoda volby Javy spočívá ve snadném napojení na běžné podnikové systémy často postavené na J2EE edici Javy. Při prvním spuštění se otevře uvítací „Welcome“ panel, který nabízí zajímavé odkazy a online tutorial.
RapidMiner je dostupný pod licencí AGPLv3.
Další konkurenční software
Statistický systém R je vůbec nejkomplexnější balík pro statistiku. Pro R existuje několik grafických nadstaveb (Rattle GUI, RKWard, R Commander...). Populárním řešením pro data mining je i aplikace Weka. V KNIME a RapidMineru lze přes speciální rozhraní zpřístupnit algoritmy z R i Weky. Software Weka rovněž využívá známý komplexní balík business softwaru Pentaho, který obsahuje různé spolupracující aplikace řešící jednotlivé aspekty business intelligence. Část balíku Pentaho zabývající se data miningem je pojmenovaná logicky jako Pentaho Data Mining. Framework jHepWork (Jython High-Energy Physics Work) se, podobně jako statistický balík ROOT, orientuje na oblast částicové fyziky. Dataminingový framework NLTK (Natural language toolkit) se specializuje na oblast lingvistiky.