Firma Silicon Graphics si za dobu svého působení nashromáždila velké
množství údajů. Pro jejich zpracování a rozumné využití se pokusila
(a zdá se, že velmi úspěšně) napsat vlastní software schopný zpřístupnit
důležité informace skryté v záplavě nepřehledných dat. Z původně
interní pomůcky se vyvinul komerční produkt, sada nástrojů pro
dolování údajů z rozsáhlých databází. MineSet obsahuje různé programy
pro vizualizaci a zpracování dat, které lze spouštět jak samostatně
(třeba i neinteraktivně), tak z jednotícího intuitivního grafického
rozhraní (Tool Manage). Grafické výsledky jsou prezentovány
na vysoké úrovni (dělal to Silicon Graphics ;)
) pomocí
3D grafického standardu OpenGL pomocí Inventoru, ale je možné je i
exportovat ve formátu vhodném pro prezentaci na Webu.
MineSet umí pracovat s většinou používaných komerčních databází
(Oracle, Informix, ...) tak s běžnými ASCII soubory. Výkonná část
běží jako server (existují i paralelní verze) a lze k ní přistupovat
pomocí klientského rozhraní z uživatelských stanic. Bohužel náročná
grafika vyžaduje Xserver rozšířený o DGL.
K MineSetu je dostupná rozsáhlá dokumentace v elektronické formě (WWW, PostScript, PDF, nápověda ve formátu InSight).
K instalaci se dá použít znakový instalační program inst
, nebo
grafické rozhrani swmgr
. Jediné problémy (kromě asi tří iterací
stahování různých patchů pro splnění závislostí) mohou být s nestandardně
zavedenými částmi systému, kdy my víme, že Perl máme, ale nevíme, jak
to říci instalátoru - řešit se to dá rozbalením balíku do pomocného adresáře,
vypsáním cílového umístění jednotlivých souborů a ručním zkopírováním
(potřebovala to pouze utilita dataschema
usnadňující přípravu
vstupních souborů).
Poslední, leč zásadní, částí instalace je získaní licence pro provozování serveru a clienta. Z Webu SGI (Key-O-Matic lze stáhout zkušební třicetidenní licenční klíče. Vzdělávací organizace zapojené do Varsity programu mají i další možnosti.
aisa.fi.muni.cz
je v tuto chvíli nainstalován MineSet
verze 2.6 se všemi vyžadovanými podpůrnými programy a záplatami. Jeho
licence nejspíš už ale vypršela ;)
. Pokud je v provozu,
je dobré pro jeho spuštění vědět:
xhost + aisa; export DISPLAY=erinys??:0
)
unset LC_CTYPE
nebo
LC_CTYPE=C
)
Prostřední hlavního správce MineSetu, ToolManager spustíte nejlépe příkazem:
aisa$ LC_CTYPE=C /usr/sbin/mineset &
I když je možné pracovat s MineSetem neinteraktivně nebo vyvolávat jednotlivé
výkonné části samostatně, budeme se zabývat pouze ovládáním z intuitivního
prostředí ToolManageru:
MineSet obsahuje tyto induktory/klasifikátory:
hodnoty A, B, C => hodnoty D, E, F
Typické použití je při analýze nákupních dat - atributy představují
nakoupené druhy zboží, snažíme se zjistit pravidla, podle kterých zákazníci
nakupují zboží.
MineSet dovoluje generovat buď pravidla s jedním atributem na levé i
pravé straně (tato pravidla jsou pak vizualizována ve dvouosém 3D grafu,
kde na jedné ose jsou atributy na levé straně a na druhé jsou atributy
na pravé straně pravidel) nebo i pravidla s více atributy na obou stranách
(tato pravidla pak nemohou být vizualizována jinak než svým vlastním výpisem).
Předložená surová data měla 1008 záznamů a 54 sloupců, po vyčištění zůstalo
974 záznamů (odpovídajících odhadnutým typům sloupců) a 56 sloupců (čas
připojení uvedený v jednom sloupci v agregovaném tvaru jsme rozděli na
použitelnější části - den v týdnu, hodina ve dni a numericky seřaditelné
datum). Po několika experimentech a s ohledem na kvalitu poskytnutých dat
jsme pro další zpracování vybrali tyto sloupce (hodnoty reprezentované většinou
číselníkem):
K nalezení sloupců, které jsou důležité pro sledování určitého atributu
lze použít funkci Color Importance popsanou výše. Dostali jsme
např. tyto výsledky:
Při použití clusteringu na sloupce věk, xpolitika, xprijem jsme dostali tyto
související kategorie:
Clustering na sloupcích politika, xprijem, sex, věk, stav a vzdělání:
Stručný úvod do práce s MineSetem
Rozdělení obrazovky Tool Manageru:
Vlastní práce s MineSetem
Ovládací prvky MineSetu jsou poměrně standardní v prostředí pracovních
stanic SGI, snadno se v nich dá intuitivně myší vyklikávat vše potřebné,
stisk klávesy F1 vyvolá občas i kontextovou nápovědu. Konkrétní
metody práce se navolí záložkami a je dobré nezapomenout nastavit různé
volby buď přímo v kartách či v rozbalitelných nabídkách.
Dolovací nástroje (Mining Tools)
Nástroje MineSetu můžeme rozdělit na induktory (Inducers) a
klasifikátory (Classifiers). Induktory jsou algoritmy, ktere čtou
vzorová data (Training Set) obsahující datové záznamy a návěští
(labels). Úkolem dolování je z neznámých dat, která budou obsahovat pouze
datové položky a nikoli návěští, generovat tato návěští s co největší
přesností. Induktor vybuduje soustavu pravidel (podle typu induktoru jsou
tato pravidla reprezentována různě) a na základě těchto pravidel vygeneruje
klasifikátor. Klasifikátor je pak algoritmus, který je možné použít
pro klasifikaci nových dat (již neoznačených návěštími).
Výsledky práce těchto algoritmů je možné vizualizovat pomocí vizuálnich
nastrojů v podobě 3D stromů, sloupcových grafů a podobně s využitím barev,
prostorových operací (rotací, zoomu, atd.) i animací.
V následujícím textu jsou popsány základní informace o jednotlivých
nástrojích. Pro studium technických detailů algoritmů použitých při tvorbě
MineSetu je dobré se podívat na stránku tříd
MLC++
- jde o knihovnu v C++ vyvinutou ve Stanfordu implementující jednotlivé
data mining algoritmy.
Všechny dolovací nástroje jsou přístupné v Tool Manageru v panelu Data
Destination.
Generátor asociačních pravidel
Asociační pravidla se z dané množiny datových záznamů snaží odvodit pravidla
typu
Typické parametry pro tento algoritmus jsou
Tyto parametry mají podobu prahových hodnot, tj. uživatel zadá minimální
hodnoty, které chce aby generovaná pravidla splňovala. Čím vyšší prahové
hodnoty, tím je generování pravidel rychlejší.
Uvedené parametry lze počítat z počtu záznamů nebo z jejich vah.
Jako váha záznamu se dá použít jeden jeho atribut, přičemž tento atribut
může nebo nemusí být vyňat z budovaných pravidel.
Rozhodovací stromy (Decision Tree)
jsou struktury, které rozdělují zkoumaná data postupnou aplikací rozhodovacích
kritérií. Každý uzel stromu reprezentuje jedno kritérium, podle kterého
se data dělí do skupin. V listech stromu jsou hledané kategorie dat, odpovídající
návěštím ve vzorových datech. V případě rozhodovacího stromu jsou přípustná
pouze diskrétní návěští, tj. návěští nabývající pouze několika hodnot.
Pro vygenerování rozhodovacího stromu je v MineSetu třeba zadat
Kromě těchto základních vstupů je možné zadat další parametry pomocí okna
Further Inducer options .... Jsou to
Rozhodovací stromy s výběrem kritéria (Option Tree)
Jde o rozšíření rozhodovacích stromů o možnost zvolit jedno z více kritérií,
podle kterých se v uzlech rozhodujeme. Tyto stromy jsou přesnější než klasické
rozhodovací stromy, ale jejich generování je výrazně delší (10-15x) a jsou
také hůře interpretovatelné. Kromě údajů zadávaných pro normální rozhodovací
strom musíme pro Option Tree zadat navíc
Ostatní vstupy mají stejný význam jako v případě rozhodovacího stromu.
Většinou se používají stromy s volbami pouze v kořenové úrovni.
Regresní stromy
jsou rozhodovací stromy, jejichž návěští není diskrétní, ale spojité. Nelze
proto použít normální rozhodovací strom, který je postaven na diskrétním
návěští.
Parametry algoritmu jsou podobné jako u rozhodovacího stromu, jiná
jsou kritéria pro dělení uzlů stromu a pro vizualizaci vygenerovaného stromu
je potřeba použít jiný vizualizér.
Shlukování
je postup používaný pro analýzu neznámých dat. Nejde o určování hodnoty
návěští na základě vzorové sady dat, analýza je prováděna vždy na celkové
množině dat.
Algoritmus je založen na hledání shluků podobných datových záznamů,
přičemž podobnost je možné měřit jako
Je možné zvolit jednoprůchodovou nebo víceprůchodovou variantu algoritmu.
Při jednoprůchodové variantě je nutno zadat počet shluků, které algoritmus
vytvoří, při víceprůchodové se zadá interval počtu výsledných shluků a
parametr choice point, který udává pravděpodobnost volby více nebo
méně shluků. Tato hodnota je mezi jedničkou a nulou, čím větší, tím se
počet výsledných shluků bude blížit horní hranici.
Jeden z atributů je možné použít jako váhu záznamu, tento atribut je
možné zahrnout do shlukování nebo vynechat. Kromě toho je možné též stanovit
váhy jednotlivých atributů pro výpočet podobnosti (rozdíl více vážícího
atributu více ovlivní podobnost záznamů než rozdíl méně vážícího atributu).
Jednotlivé vytvořené shluky jsou pak reprezentovány svými středovými
záznamy, což jsou záznamy s průměrnými hodnotami atributů ze všech záznamů
shluku. Pro jednotlivé shluky jsou uvedeny další statistické údaje, jako
jsou odchylky a podobně.
Hledání důležitých atributů
Uživatel zadá vzorová data a návěští a algoritmus určí daný počet atirbutů,
které nejlépe klasifikují daná data pro dané návěští. U každého nalezeného
atributu vypíše algoritmus, jak dobře tento atribut dělí datovou množinu
(purity). Lze použít také rozšířenou variantu algoritmu, která počítá kumulativní
puritu pro vybranou skupinu atributů a pro ostatní atributy vypíše, jako
puritu by dosáhl výběr atributů, kdyby k němu byl přidán příslušný atribut.
Tímto postupem je možné optimalizovat výběr důležitých atributů.
Příklad použití (průzkum uživatelů Internetu)
Ke zpracování jsme dostali data z Průzkumu uživatelů internetu prováděného
kdysi na VUT v Brně. Dotazník bohužel nebyl patrně příliš dobře navržen,
nebo se počítalo se značnou prací při zpracování nasbíraných dat.
xprijem <= obor, vek, xpolitika (purity 39.34)
politika <= xprijem, obor, vek (purity 25.24)
xdoma <= obor, vek, sex (purity 32.74)
Pripojeni doma <= sex, vek (purity 25)
Závěrem
MineSet je velice kvalitně propracovaný a uživatelsky dost přívětivý systém,
se kterým se dá snadno pracovat a vyhledávat závislosti v jinak těžko
přehledných datech. Možná by mohl být více otevřený dalšímu rozšiřování
či snadněji propojitelný s dalšími systémy, ale je třeba mít na paměti, že
jde o komerční, nikoliv akademický systém. Rozhodně se dá, i díky velice
dobré dokumentaci, použít pro snadnější orientaci v základech KDD. K
dispozici jsou i
animované komentované ukázky práce s MineSetem, které usnadní první
seznámení a názorně předvedou, co vše MineSet umí - je ovšem pravda, že
nad spletitými daty vypadají i velmi názorné vizualizační nástroje poněkud
nepřehledně a je nutné investovat jistou námahu do skutečného vydolování
znalostí ;-).