Vyuºití evolu£ních technik v léka°°ské diagnostice
Transkript
České vysoké učenı́ technické v Praze Fakulta elektrotechnická Katedra kybernetiky Využitı́ evolučnı́ch technik v lékařské diagnostice Diplomová práce Jan Suchý Květen 2004 Abstrakt Diagnostika se chápe jako řešenı́ klasifikačnı́ úlohy. Je navržen systém pro klasifikaci objektů popsaných čı́selnými i nečı́selnými přı́znaky. Model klasifikovaných objektů se zı́skává během procesu učenı́ z trénovacı́ množiny správně klasifikovaných přı́kladů. Klasifikované objekty se modelujı́ pomocı́ rozhodovacı́ch stromů. Uzly stromů obsahujı́ podmı́nky obecného tvaru, které se hledajı́ pomocı́ genetického programovánı́. Výsledný klasifikátor je les – soubor takových stromů, které klasifikujı́ podle většinové volby. Je srovnána přesnost klasifikace pomocı́ lesa a jednotlivých stromů. Je ukázáno, kdy les klasifikuje přesněji než jednotlivé stromy. Ukazuje se, že použitı́ lesa zmenšuje efekt přeučenı́. Je srovnána přesnost klasifikace systému s jinými současnými metodami na veřejně dostupných databázı́ch z medicı́nského prostředı́. Abstract Automatic diagnostics is viewed as a pattern classification task. A classification method suited for objects described by both numerical and nominal attributes is proposed. A supervised learning method is used to construct classifiers from data. The classifiers constructed are ensembles of oblique decision trees. Genetic programming is used to evolve complex conditions in decision tree nodes. Classification accuracy of single trees is compared to ensembles. It is shown that ensembles work generally better (in terms of classification accuracy) than single trees. Properties of datasets where the use of ensembles can actually reduce classification accuracy are also discussed. It is shown that ensembles can reduce the effect of overfitting. A comparison with the results achieved by other techniques on publicly available datasets is carried out. Prohlášenı́ Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil jsem pouze podklady (literaturu, projekty, SW, atd.) uvedené v přiloženém seznamu. Nemám závažný důvod proti užitı́ tohoto školnı́ho dı́la ve smyslu §60 Zákona č.121/2000 Sb., o právu autorském, o právech souvisejı́cı́ch s právem autorským a o změně některých zákonů (autorský zákon). V Praze, 21. května 2004 Jan Suchý Poděkovánı́ Poděkovánı́ patřı́ mému vedoucı́mu práce, Jiřı́mu Kubalı́kovi, za podporu během celého procesu tvorby této práce. Obsah Obsah 6 Úvod 8 1 Evolučnı́ výpočetnı́ techniky 1.1 Principy evolučnı́ch technik . . . . . . . . . 1.1.1 Schéma evolučnı́ho algoritmu . . . . 1.1.2 Výběrové strategie . . . . . . . . . . 1.1.3 Náhradové strategie . . . . . . . . . . 1.2 Genetické algoritmy . . . . . . . . . . . . . . 1.2.1 Reprezentace jedinců . . . . . . . . . 1.2.2 Rekombinačnı́ operátory . . . . . . . 1.2.3 Teorém o Schématech . . . . . . . . . 1.3 Genetické programovánı́ . . . . . . . . . . . 1.3.1 Reprezentace jedinců . . . . . . . . . 1.3.2 Rekombinačnı́ operátory . . . . . . . 1.3.3 Algoritmus genetického programovánı́ 1.3.4 Genetické programovánı́ s typovánı́m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 10 11 13 14 15 15 15 17 17 18 19 20 21 2 Specifikace zadánı́ 24 3 Popis řešenı́ 3.1 Rozhodovacı́ stromy . . . . . . . . . . . . . . . . . 3.2 Kritérium kvality pravidel . . . . . . . . . . . . . . 3.3 Struktura pravidel . . . . . . . . . . . . . . . . . . 3.4 Hledánı́ pravidel pomocı́ genetického programovánı́ 3.5 Algoritmus indukce rozhodovacı́ch stromů . . . . . 3.6 Lesy . . . . . . . . . . . . . . . . . . . . . . . . . . 27 27 28 30 33 34 34 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Experimenty 38 4.1 Demonstrace evoluce pravidel podle informačnı́ho zisku . . . . 39 6 7 ÚVOD 4.2 4.3 4.4 4.5 4.6 Vliv terminálů a funkcı́ na vlastnosti rozhodovacı́ho stromu Demonstrace klasifikace pomocı́ lesa . . . . . . . . . . . . . Srovnánı́ metod pro vytvářenı́ lesů . . . . . . . . . . . . . Může les potlačit efekt přeučenı́? . . . . . . . . . . . . . . Srovnánı́ s jinými metodami klasifikace . . . . . . . . . . . . . . . . . . . . . 41 43 43 47 49 5 Závěr 56 Literatura 59 A Popis programu na přiloženém CD 62 Úvod Systémy pro podporu rozhodovánı́ a automatickou diagnostiku nacházejı́ v lékařstvı́ stále většı́ uplatněnı́. Je to způsobeno prudkým vzestupem možnostı́ výpočetnı́ techniky, nových měřicı́ch metod a pokrokem v oblastech strojového učenı́ a rozpoznávánı́. Úkolem těchto systémů je obvykle snı́žit riziko chybného rozhodnutı́ člověka při určovánı́ diagnózy či vyloučit nákladná vyšetřenı́ dı́ky optimálnı́mu využitı́ dostupných informacı́. Pokročilejšı́ schopnostı́ některých takových systémů je možnost zı́skat z naměřených dat znalosti ve formě srozumitelné člověku, které mohou být užitečné pro určenı́ diagnózy. Pro účely strojového zpracovánı́ je nutné úlohu určenı́ správné diagnózy přesněji definovat. V této práci se pojı́má jako problém klasifikace, tedy zařazenı́ diagnostikovaného objektu do správné třı́dy na základě známých přı́znaků. Přı́znaky představujı́ známé veličiny neboli údaje o objektu zı́skané měřenı́m a třı́dy, do kterých se klasifikuje, představujı́ možné diagnózy. Program provádějı́cı́ klasifikaci, neboli klasifikátor, v sobě obsahuje model diagnostikovaného objektu, který vystihuje souvislost mezi přı́znaky a třı́dami v naměřených datech. Někdy je model znám předem dı́ky podrobné analýze úlohy a zbývá pouze nalézt hodnoty několika jeho parametrů. Často jsou ale znalosti úlohy nedostatečné a pak je úkolem vhodný model vytvořit automaticky na základě pozorovánı́. K tomuto účelu se v aplikacı́ch použı́vá řada různých typů modelů: odhady rozdělenı́ pravděpodobnosti přı́znaků při konkrétnı́ diagnóze, neuronové sı́tě, báze logických klasifikačnı́ch pravidel, rozhodovacı́ stromy, bayesovské sı́tě, atd. Všechny majı́ své přednosti i omezenı́. Výběr vhodného typu modelu závisı́ na konkrétnı́ úloze a na požadavcı́ch kladených na řešenı́. Je požadováno, aby byl výsledný model interpretovatelný člověkem? Jak složitý je systém, který se má diagnostikovat? Jak velké je množstvı́ dat, které bude sloužit k tvorbě modelu? Je pro tvorbu modelu k dispozici dostatečně rychlý algoritmus? Tato práce se zabývá návrhem a implementacı́ systému pro klasifikaci dat využitelného v lékařské diagnostice. Jejı́m hlavnı́m úkolem je využı́t výpočetnı́ch metod inspirovaných evolučnı́mi procesy v přı́rodě k zı́skánı́ modelu 8 ÚVOD 9 dat ze souboru vzorových, správně klasifikovaných přı́kladů, tzv. trénovacı́ množiny. Tento model má dobře vystihnout vlastnosti trénovacı́ množiny, aby umožnil správně klasifikovat nová, dosud neznámá data. Zároveň má umožnit uživateli využitı́ přı́padných apriornı́ch znalostı́ o úloze. Celý text je rozdělen do pěti kapitol: Kapitola 1 nejdřı́ve předkládá obecný úvod do evolučnı́ch výpočetnı́ch technik. Poté detailněji popisuje některé konkrétnı́ algoritmy využı́vajı́cı́ evoluce: genetické algoritmy a hlavně genetické programovánı́, které je využito pro implementaci systému. Kapitola 2 přesně definuje úlohu klasifikace a specifikuje požadavky na systém. Kapitola 3 popisuje řešenı́. Zde se navrhne vhodný typ klasifikátoru založeného na rozhodovacı́ch stromech. Navrhne se metoda indukce rozhodovacı́ch stromů s ohledem na požadavky v kapitole 2. Kapitola 4 uvádı́ experimenty ověřujı́cı́ schopnosti systému a diskutuje jejich výsledky. Jde jednak o klasifikaci uměle vytvořených dat, která dovolı́ názorným způsobem ukázat základnı́ vlastnosti systému. schopnost zobecnit a citlivost na přeučenı́. Dále jde o experimenty na reálných datech, které poskytujı́ srovnánı́ s jinými metodami klasifikace. Kapitola 5 Závěr. Zhodnocenı́ řešenı́ a dosažených výsledků. Možná pokračovánı́. Souvisejı́cı́ práce. Kapitola 1 Evolučnı́ výpočetnı́ techniky Evolučnı́ výpočetnı́ techniky (EVT) jsou netradičnı́ výpočetnı́ postupy inspirované vývojovými procesy v přı́rodě. Použı́vajı́ se k řešenı́ mnoha různých problémů, které je možné formulovat jako optimalizačnı́ úlohy. Zpravidla jde o těžké“ optimalizace, které se vyznačujı́ obrovskou velikostı́ prohle” dávaného prostoru, multimodalitou kriteriálnı́ funkce nebo velkým počtem stupňů volnosti. Prohledánı́ celého prostoru vygenerovánı́m všech přı́pustných kandidátů na řešenı́ úlohy nenı́ v takových přı́padech zvládnutelné ani nejvýkonnějšı́mi technickými prostředky. Je třeba zvolit způsob, který cı́leně směřuje k nalezenı́ optimálnı́ho řešenı́. Tı́m mohou být právě EVT. Jakými prostředky dosahujı́ urychlenı́ procesu hledánı́, popisuje sekce 1.1. Jedná se o obecné principy, které jsou společné téměř všem algoritmům založeným na EVT. Jejich konkrétnı́ užitı́ je ukázáno v sekcı́ch 1.2 o genetických algoritmech a 1.3 o genetickém programovánı́. 1.1 Principy evolučnı́ch technik Přı́rodnı́ evoluce je proces, při kterém se biologické druhy přizpůsobujı́ měnı́cı́mu se prostředı́. Taková adaptace se může uskutečňovat skrze rozmnožovánı́ jedinců a mutace. Rozmnožovánı́ má dvě funkce. Na jedné straně dovoluje dı́ky dědičnosti uchovávat a předávat vlastnosti důležité pro přežitı́ druhu. Na druhé straně dává vzniknout jedincům nových, potenciálně užitečných kvalit. (K tomu ovšem docházı́ jen v přı́padě pohlavnı́ho rozmnožovánı́. Pokud se druh rozmnožuje nepohlavně, objevujı́ se jedinci nových vlastnostı́ pouze dı́ky mutacı́m.) Ne všem jedincům je však dovoleno přežı́t. Lépe přizpůsobenı́ přežı́vajı́ a rozmnožujı́ se ve většı́m počtu, špatně přizpůsobenı́ vymı́rajı́ a nemohou své dědičné vlastnosti předat dalšı́m generacı́m. Tento jev, zodpovědný za přežitı́ silnějšı́ho“, se nazývá přirozený výběr. ” 10 KAPITOLA 1. EVOLUČNÍ VÝPOČETNÍ TECHNIKY 11 EVT modelujı́ uvedené základnı́ rysy přı́rodnı́ evoluce s cı́lem postupně vyšlechtit“ optimálnı́ nebo alespoň dostatečně kvalitnı́ řešenı́ optimalizačnı́ ” úlohy. Přesně vysvětlit, proč EVT fungujı́, bývá obtı́žné. Pro většinu algoritmů neexistuje aparát, který by popisoval jejich chovánı́. Jistý vhled poskytuje analýza genetických algoritmů provedená Hollandem [13], která ale platı́ jen pro úzkou třı́du algoritmů. 1.1.1 Schéma evolučnı́ho algoritmu Obecné schéma evolučnı́ho algoritmu je znázorněno na obrázku 1.1. Tak jako mnoho jiných optimalizačnı́ch metod pracuje algoritmus cyklicky. Jednotlivé kroky jsou zde stručně popsány. Vytvořenı́ počátečnı́ populace. Klasické optimalizačnı́ metody obvykle vycházejı́ z vhodného počátečnı́ho odhadu řešenı́, který postupně vylepšujı́. Narozdı́l od nich pracujı́ EVT s celou množinou kandidátů na řešenı́ neboli populacı́ jedinců (individuals). Počátečnı́ populaci je možné vytvořit bud’ náhodně nebo, je-li to možné, pomocı́ heuristiky, která dovolı́ vytipovat slibné kandidáty na řešenı́ úlohy. Důležitou vlastnostı́ populace je zejména z počátku jejı́ rozmanitost (diversity). Je nutné vytvořit počátečnı́ populaci tak, aby se jednotlivı́ jedinci navzájem co nejvı́ce lišili. Vyhodnocenı́. Každý jedinec je ohodnocen mı́rou svojı́ kvality (fitness). Kvalita je analogie schopnosti přežı́t v drsné přı́rodě a v EVT vyjadřuje mı́ru optimality řešenı́. V této fázi probı́há jejı́ zjištěnı́ u všech jedinců v populaci a zpravidla se jedná o časově nejnáročnějšı́ krok celého algoritmu. Požadavky na vlastnosti tohoto ohodnocenı́ nejsou přı́liš přı́sné. Nejčastěji bývá kvalita definována jako funkce přiřazujı́cı́ jedincům reálná čı́sla. Většinou ale stačı́, aby bylo možné mezi sebou jedince porovnat a podle kvality uspořádat. Evolučnı́ fáze. V této fázi se vytvářı́ určitý počet nových jedinců způsobem, který napodobuje rozmnožovánı́ v přı́rodě a zvyšuje šanci, že bude nalezeno lepšı́ řešenı́. Prvnı́m krokem je selekce neboli výběr jedinců, kteřı́ budou sloužit jako rodiče nebo vzory pro nově vytvářené jedince. Několik odlišných, nejčastěji použı́vaných metod selekce je popsáno v následujı́cı́ podsekci. Všechny majı́ jeden společný rys: V dobré vı́ře, že kvalitnı́ rodiče zplodı́ kvalitnı́ potomky, jsou častěji vybı́ráni jedinci nadprůměrné kvality. Tı́m se dosahuje postupného zvyšovánı́ kvality celé populace. Selekce KAPITOLA 1. EVOLUČNÍ VÝPOČETNÍ TECHNIKY 12 Vytvoření počáteční populace Vyhodnocení Selekce jedinců Evoluční fáze Rekombinace Tvorba nové populace Vyhodnocení NE ANO Je splněna podmínka ukončení? Ukončení Obrázek 1.1: Vývojový diagram evolučnı́ho algoritmu je tak analogiı́ přirozeného výběru v přı́rodě. Silnějšı́ jedinci přežı́vajı́ a majı́ většı́ šanci k rozmnožovánı́. Dalšı́m krokem je vytvořenı́ nových jedinců způsobem, který se v EVT nazývá rekombinace. Rekombinace se realizována metodami, kterým se řı́ká rekombinačnı́ operátory. Rekombinačnı́ operátory nejčastěji modelujı́ přı́rodnı́ křı́ženı́ (crossover) a mutaci (mutation). Operátor křı́ženı́ generuje z několika jedinců - rodičů (parents) jednoho nebo vı́ce potomků (offsprings). Cı́lem křı́ženı́ je tvořit potomky, kteřı́ v sobě kombinujı́ vlastnosti svých rodičů. Zajistit smysluplné přenášenı́ vlastnostı́ rodičů na potomky je často náročné, ale zásadně to ovlivňuje výkonnost celého algoritmu. Dobré vysvětlenı́ podává v tomto ohledu článek [8]. Operátor mutace je unárnı́ a provádı́ malou“, obvykle náhodnou změnu ” vybraného jedince, což je v podstatě hledánı́ lepšı́ho řešenı́ v blı́zkém okolı́“ jedince. ” Nakonec je třeba vytvořit novou populaci, která bude obsahovat jedince vzniklé rekombinacı́ a která následně podstoupı́ dalšı́ kolo evolučnı́ho vývoje. Novou populace je možné utvořit pouze z nových“ jedinců nebo ” KAPITOLA 1. EVOLUČNÍ VÝPOČETNÍ TECHNIKY 13 nahradit jen část staré“ populace. Možnostı́ je vı́ce a je jim věnována ” samostatná podsekce. Podmı́nka ukončenı́. Cyklus postupného šlechtěnı́“ probı́há obvykle do na” lezenı́ optimálnı́ho či dostatečně kvalitnı́ho řešenı́. Někdy nenı́ možné rozpoznat, zda je nejlepšı́ dosud nalezené řešenı́ optimálnı́. Pak bývá doba běhu programu omezena bud’ časem nebo počtem provedených operacı́. Je také možné ukončit běh evoluce, pokud se po delšı́ dobu neobjevilo žádné zlepšenı́. 1.1.2 Výběrové strategie Úkolem selekce je upřednostňovat kvalitnı́ jedince před horšı́mi. K vyjádřenı́ mı́ry, s jakou zvýhodňujeme kvalitnı́ jedince, se použı́vá pojem selekčnı́ tlak (selection pressure). Jeho velikost má významný vliv na funkci každého evolučnı́ho algoritmu. Vysoký selekčnı́ tlak znamená, že mnoho jedinců s relativně nı́zkou kvalitou má velmi malou šanci k rekombinaci. Populaci pak velmi rychle ovládnou potomci několika vysoce kvalitnı́ch jedinců. Vede to sice k rychlému růstu průměrné kvality populace, ale také ke značnému omezenı́ jejı́ rozmanitosti. Důsledkem je snı́žená prohledávacı́ schopnost algoritmu a velká šance, že optimalizace uvázne v lokálnı́m optimu. Nı́zký selekčnı́ tlak dává dostatek prostoru pro rekombinaci i relativně málo kvalitnı́m jedincům. Algoritmus tak prohledává i méně slibná“ mı́sta, ale postup k řešenı́ je po” malejšı́. Při úplné absenci selekčnı́ho tlaku se evoluce degraduje na náhodné prohledávánı́. Metod prováděnı́ selekce a úpravy selekčnı́ho tlaku je celá řada. Přehled poskytujı́ např. publikace [17] v kapitole o genetických algoritmech, [18] a [11]. Zde budou jen stručně popsány nejznámějšı́ výběrové strategie. Selekce ruletovým kolem je náhodný výběr, při kterém je pravděpodobnost výběru jedince přı́mo úměrná jeho kvalitě. Předpokládá kvalitu jedince vyjádřenou pomocı́ nezáporné reálné funkce f . Pravděpodobnost výběru itého jedince xi z populace velikosti N je tedy možné zapsat jako f (xi ) P (xi ) = PN , j=1 f (xj ) i = 1, . . . , N, (1.1) kde f (xi ) značı́ kvalitu jedince xi . Název této metody vycházı́ z představy ruletového kola, na kterém má každý jedinec z populace vyhrazen počet polı́ček přı́mo úměrný své kvalitě. Je-li počet polı́ček na ruletovém kole dostatečně velký, dává vzorec 1.1 dobrý odhad pravděpodobnosti jevu padne xi“ při ” zatočenı́ ruletou. Při výběru velmi velkého počtu jedinců se dá u vybrané KAPITOLA 1. EVOLUČNÍ VÝPOČETNÍ TECHNIKY 14 množiny očekávat relativnı́ podı́l průměrných jedinců přibližně stejný jako v původnı́ populaci. Podı́l nadprůměrných bude vyššı́, podı́l podprůměrných nižšı́. U malých populacı́, kdy se vždy vybı́rá jen malý počet jedinců, však přestává být na náhodu spolehnutı́ a skutečné rozloženı́ nemusı́ odpovı́dat očekávaným hodnotám. Proto se selekce provádı́ také jinými, částečně deterministickými způsoby. Přı́kladem může být zbytkový stochastický výběr (remainder stochastic sampling) [17]. Jinou metodou je tzv. pořadová selekce (rank selection). Narozdı́l od předchozı́ch nepožaduje, aby byla kvalita reprezentována reálnou funkcı́. Stačı́ jedince vzestupně podle kvality uspořádat. Nejhoršı́mu jedinci se přiřadı́ ohodnocenı́ 1, druhému nejhoršı́mu 2, atd. až nejlepšı́ dostane ohodnocenı́ N . Podle tohoto ohodnocenı́ se vypočtou pravděpodobnosti Pr (xi ) = 2(N + 1 − i) , N (N − 1) i = 1, . . . , N, (1.2) které je možné využı́t k selekci ruletovým kolem nebo zbytkovým stochastickým výběrem. Tento způsob nacházı́ uplatněnı́ i v situacı́ch, kdy je kvalita definována pomocı́ reálné funkce. V některých přı́padech totiž znamená malý rozdı́l v kvalitě významný rozdı́l v užitné hodnotě“ jedince. Obyčejná selekce ” ruletovým kolem může takové rozdı́ly prakticky smazat. Turnajová selekce (tournament selection) je velmi oblı́bená pro svou jednoduchost a snadnou kontrolu selekčnı́ho tlaku. Z populace se postupně a zcela náhodně vybı́rajı́ skupinky jedinců, kteřı́ spolu bojujı́ o přı́ležitost k rekombinaci. Turnaj má vždy jen jednoho vı́těze, kterým se stává nejkvalitnějšı́ jedinec z celé skupinky. Selekčnı́ tlak lze snadno kontrolovat velikostı́ vybı́raných skupinek. Je zřejmé, že většı́ počet účastı́ků turnaje zvýšı́ i selekčnı́ tlak. Tato selekčnı́ metoda se použı́vá i v této práci. 1.1.3 Náhradové strategie Po selekci a rekombinaci je třeba vytvořit novou populaci, do které se zařadı́ novı́ jedinci vzniklı́ rekombinacı́. Klasický generačnı́ postup provádı́ úplné nahrazenı́ původnı́ populace. Připomı́ná životnı́ cyklus jednoletých rostlin. Do nové populace, na kterou pohlı́žı́ jako na novou generaci, vybı́rá právě tolik jedinců, kolik obsahuje původnı́ populace. Na jedince poté aplikuje s pravděpodobnostı́ P× operátor křı́ženı́ a s pravděpodobnostı́ Pm operátor mutace. Rodiče jsou v přı́padě provedenı́ operace nahrazeni svými potomky a jedinci podstupujı́cı́ mutaci svými mutanty. Hodnota P× je obvykle v intervalu 0,5 – 1,0, hodnota Pm bývá v intervalu 0,02 – 0,1. Celý proces náhrady lze pojmout i jiným způsobem. Při rekombinaci se vytvořı́ určitý počet jedinců, menšı́ než je velikost původnı́ populace. Náhra- KAPITOLA 1. EVOLUČNÍ VÝPOČETNÍ TECHNIKY 15 dová strategie potom vybere jedince z původnı́ populace, které nahradı́ novými, vzniklými rekombinacı́. Meznı́m přı́padem tohoto přı́stupu je tzv. inkrementálnı́ evoluce (steady-state evolution), která v každém cyklu vybı́rá a nahrazuje jen jediný pár rodičů. Bývá výhodné nahrazovat náhodně vybrané jedince. Výměnou nejhoršı́ch jedinců v populaci se přı́liš zvyšuje selekčnı́ tlak [12]. Některé aplikace EVT zavádějı́ pojem stářı́ jedince jako počet cyklů, po který zůstává v populaci. Pro náhradu pak vybı́rajı́ nejstaršı́ jedince. 1.2 Genetické algoritmy Genetické algoritmy (GA) patřı́ mezi nejstaršı́ metody využı́vajı́cı́ evoluce jako výpočetnı́ho prostředku. Jejich studiu byla věnována značná pozornost a jsou zřejmě nejvı́ce prozkoumanou oblastı́ EVT. Pro nejstaršı́ variantu GA, tzv. standardnı́ GA, vypracoval J. Holland teorii o schématech [13]. Ta představuje zatı́m jediný široce uznávaný pokus o vysvětlenı́ jejich funkce, i když je sama předmětem mnoha výhrad. Proto jsou zde vyloženy alespoň nejdůležitějšı́ závěry, které z nı́ vyplývajı́. Podrobnějšı́ výklad GA a teorie o schématech podávajı́ publikace [17], [11] a [13]. Objevily se snahy přizpůsobit tuto teorii i pro jiné typy evolučnı́ch algoritmů, např. pro genetické programovánı́ [14], ale tato přizpůsobenı́ nejsou přı́liš propracovaná. 1.2.1 Reprezentace jedinců Jedinci jsou v GA reprezentováni pomocı́ řetězců (s1 , s2 , . . . , sL ) konečné délky L. Symboly si jsou vybrány abecedy Ai , která je zpravidla konečná. Často bývajı́ všechny symboly z téže abecedy, tedy Ai = A pro všechna i. V analogii s genetikou se řetězce nazývajı́ chromozómy a jednotlivé symboly alely. U standardnı́ch GA majı́ všechny chromozómy stejnou délku a abecedu tvořı́ pouze dva symboly, 0 a 1. 1.2.2 Rekombinačnı́ operátory Nejpoužı́vanějšı́ rekombinačnı́ operátory u GA realizujı́ křı́ženı́ a mutaci. Konkrétnı́ způsob prováděnı́ těchto operacı́ se zpravidla lišı́ v každé aplikaci. Zde jsou pro ukázku popsány operátory jednobodového křı́ženı́ a bodové mutace tak, jak je použı́vajı́ standardnı́ GA. Jednobodové křı́ženı́ kombinuje dva jedince – rodiče a jeho výsledkem jsou opět dva jedinci – potomci. Proces křı́ženı́ je znázorněn na obrázku 1.2. Nejprve se náhodně zvolı́ čı́slo od 1 do (L − 1). To určı́ tzv. křı́žı́cı́ bod, ve kterém se oba rodičovské řetězce rozdělı́. Oba potomci jsou pak vytvořeni prohozenı́m spodnı́ch částı́ řetězců 16 KAPITOLA 1. EVOLUČNÍ VÝPOČETNÍ TECHNIKY 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 a) 0 1 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 b) 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 c) Obrázek 1.2: Jednobodové křı́ženı́ u standardnı́ch GA (a) rodiče a křı́žı́cı́ bod, (b) křı́ženı́, (c) potomci KAPITOLA 1. EVOLUČNÍ VÝPOČETNÍ TECHNIKY 17 rodičů a jejich opětovným spojenı́m. Bodová mutace je velmi jednoduchá operace. U mutovaného jedince se invertuje náhodně zvolená alela. 1.2.3 Teorém o Schématech Chromozómy tvořené binárnı́mi řetězci představujı́ jednotlivé vzorky prohledávaného prostoru. Určité hodnoty jednotlivých bitů nebo jejich skupinek různým způsobem ovlivňujı́ kvalitu jedince. Skupinu řetězců, které se v určitých bitech shodujı́, je možné snadno popsat pomocı́ tzv. schématu. Napřı́klad řetězce délky 3, které majı́ jedničku na prvnı́ pozici, popisuje schéma (1, ∗, ∗). Hvězdičky znamenajı́, že hodnota přı́slušného bitu může být libovolná. Schéma je kvalitnı́, pokud řetězce, které popisuje, představujı́ kvalitnı́ kandidáty na řešenı́ úlohy. Počet nul a jedniček ve schématu se nazývá řád schématu. Největšı́ vzájemná vzdálenost dvou nehvězdičkových“ symbolů ” ve schématu se nazývá definičnı́ délka schématu. Holland se ve své práci [13] pokusil objasnit princip funkce genetických algoritmů právě pomocı́ schémat. Zabýval se přežitı́m kvalitnı́ch schémat v průběhu evoluce a jejich šı́řenı́m v populaci. Toto chovánı́ studoval na genetických algoritmech s binárnı́mi chromozómy pevné délky, generačnı́m modelem náhrady jedinců a selekcı́ pomocı́ ruletového kola. Z rekombinačnı́ch operátorů uvažoval jednobodové křı́ženı́ a bodovou mutaci. Pro zjednodušenı́ předpokládal práci s nekonečně velkými populacemi. Nejvýznamnějšı́ závěry jeho teorie vyjadřujı́ teorém o schématech a hypotéza o stavebnı́ch blocı́ch, jejichž slovnı́ formulace zde jsou převzaty z [17]: Teorém o Schématech. Počet krátkých, nadprůměrně kvalitnı́ch schémat nı́zkého řádu v jednotlivých generacı́ch exponenciálně roste. Hypotéza o stavebnı́ch blocı́ch. Genetický algoritmus hledá svoje chovánı́ blı́zké optimálnı́mu tı́m, že upřednostňuje a přeskupuje krátká, nadprůměrně kvalitnı́ schémata nı́zkého řádu, nazývaná stavebnı́ bloky. Ačkoli jsou tyto závěry odvozeny jen pro úzkou třı́du genetických algoritmů, předpokládá se, že princip funkce jiných evolučnı́ch technik je obdobný. 1.3 Genetické programovánı́ V roce 1985 přišel Nichael L. Cramer s myšlenkou vyvı́jet pomocı́ genetických algoritmů počı́tačové programy. Mı́sto řetězců použil pro reprezentaci jedinců stromové struktury. Jeho myšlenky později rozvinul John R. Koza a svou rozsáhlou práci publikoval v knihách [14] a [15], které se doposud dočkaly ještě dvou dalšı́ch pokračovánı́ (v češtině podává základnı́ přehled kniha [18]). KAPITOLA 1. EVOLUČNÍ VÝPOČETNÍ TECHNIKY 18 OR AND AND NOT NOT X X Y Y Obrázek 1.3: Reprezentace logického výrazu (¬X ∧ ¬Y ) ∨ (X ∧ Y ) Od Kozy pocházı́ název metody: genetické programovánı́. Genetické programovánı́ je dnes velmi oblı́benou metodou EVT. Hlavnı́m důvodem je právě stromová reprezentace jedinců, která dovoluje poměrně snadno pracovat i se složitými hierarchickými strukturami. 1.3.1 Reprezentace jedinců Jedinci v genetickém programovánı́ obvykle reprezentujı́ počı́tačové programy, výrazy a jiné struktury, které lze vyjádřit pomocı́ acyklických grafů neboli stromů. Na obrázku 1.3 je ukázka reprezentace logického výrazu dvou proměnných. Tyto stromy jsou složeny ze symbolů dvou typů: funkcı́, které se nacházejı́ ve vnitřnı́ch uzlech stromu a terminálů, které tvořı́ listy stromu. Množina všech funkcı́ se označuje F , množina všech terminálů T . Funkce majı́ většinou význam operacı́ ve vyvı́jeném programu. Každá je charakterizována svou aritou neboli počtem svých argumentů. Terminály nejčastěji představujı́ vstupnı́ proměnné, se kterými funkce pracujı́. Mohou to ale být i konstanty nebo funkce s nulovou aritou. Genetické programovánı́ hledá řešenı́ zadané úlohy v prostoru všech stromů s vnitřnı́mi uzly z množny F a listy z množiny T . Z toho vyplývajı́ dva požadavky na množiny F a T : Uzavřenost znamená, že výstup jakékoli funkce nebo terminálu se může stát vstupem jakékoli jiné funkce. Tato vlastnost umožňuje snadnou konstrukci nových jedinců kopı́rovánı́m částı́ existujı́cı́ch stromů. Uzavřenost nesplňujı́ napřı́klad množiny T = {0, 1}, F = {+, −, ∗, /}, protože nenı́ přı́pustné dělit nulou. 19 KAPITOLA 1. EVOLUČNÍ VÝPOČETNÍ TECHNIKY * X − − + 1 Y a) X Y * sin X Y * − sin + Y Y b) X Y * − X X 1 Obrázek 1.4: Křı́ženı́ v genetickém programovánı́ (a) rodiče a křı́žı́cı́ body, (b) potomci Postačitelnost požaduje aby řešenı́ úlohy bylo možné vyjádřit nějakým stromem zkonstruovaným z množin F a T . Napřı́klad množiny F = {+, −}, T = {x, y} nejsou postačujı́cı́, je-li řešenı́m úlohy výraz x∗y+x. Tento samozřejmý požadavek nemusı́ být jednoduché dodržet: Řešenı́ obvykle nenı́ známé předem. 1.3.2 Rekombinačnı́ operátory Genetické programovánı́ zná celou řadu rekombinačnı́ch operátorů, ale většina z nich docházı́ využitı́ zřı́dka. Běžně se použı́vajı́ pouze tzv. primárnı́ operátory: křı́ženı́ a mutace, které jsou popsány v této sekci. Jsou to analogie jednobodového křı́ženı́ a bodové mutace u genetických algoritmů. Ostatnı́ (sekundárnı́) operátory popisujı́ napřı́klad knihy [14] a [18]. Křı́ženı́ je znázorněno na obrázku 1.4. Stejně jako u standardnı́ch genetických algoritmů pracuje se dvěma rodiči a jeho výsledkem jsou dva potomci. Začı́ná se náhodným výběrem křı́žı́cı́ho uzlu u každého rodiče (na obrázku jsou označeny dvojitým kroužkem). Podstromy vycházejı́cı́ z křı́žı́cı́ho uzlu 20 KAPITOLA 1. EVOLUČNÍ VÝPOČETNÍ TECHNIKY * Y * + − X 1 Y Y + * X − 1 a) X 1 b) Obrázek 1.5: Mutace v genetickém programovánı́ (a) původnı́ jedinec, (b) mutant se potom odřı́znou a vzájemně prohodı́. Aby se omezilo pouhé prohazovánı́ listů, použı́vá se rozdělenı́ pravděpodobnosti upřednostňujı́cı́ výběr vnitřnı́ch uzlů stromu. Křı́ženı́ může způsobit růst stromů do velkých rozměrů. Z praktických důvodů se proto definuje maximálnı́ přı́pustná hloubka stromu Dmax . Jejı́ konkrétnı́ hodnota závisı́ na složitosti řešené úlohy. Napřı́klad Koza použı́vá ve své knize [14] hodnotu Dmax = 17. Za účelem dodrženı́ tohoto omezenı́ se při křı́ženı́ kontroluje hloubka vytvořených potomků. Pokud se objevı́ jedinec přesahujı́cı́ povolený limit, je nahrazen jednı́m ze svých rodičů. Přı́klad mutace ukazuje obrázek 1.5. U mutovaného jedince se náhodně vybere uzel a podstrom vycházejı́cı́ z tohoto uzlu se odřı́zne. Na jeho mı́stě se pak následujı́cı́m způsobem nechá vyrůst“ nový podstrom: Z množiny ” C = F ∪ T se náhodně vybere symbol a připojı́ se namı́sto kořene odřı́znutého stromu. Pokud je symbolem terminál, operace skončı́. Je-li symbolem funkce, opakuje se tento krok rekurzivně na všechny syny této funkce. V obecném přı́padě nemusı́ dojı́t k samovolnému zastavenı́ růstu, a proto je třeba průběžně sledovat hloubku celého stromu. Dosáhne-li hloubka hodnoty Dmax − 1, připojujı́ se nadále pouze symboly z množiny T . Tak se nepřekročı́ maximálnı́ povolená hloubka stromu. KAPITOLA 1. EVOLUČNÍ VÝPOČETNÍ TECHNIKY 21 Gen = 0 Vytvoř náhodnou počáteční populaci Je splněna zastavovací podmínka? Ano Vrať nejlepší nalezené řešení Ne Konec Ohodnoť všechny jedince v populaci i=0 Ano Gen = Gen + 1 i=N? Ne Náhodně vyber rekombinační operátor Mutace Křížení Vyber jedince na základě kvality Vyber dva jedince na základě kvality i=i+1 Proveď mutaci Proveď křížení Vlož mutanta do nové populace Vlož potomky do nové populace i=i+1 Obrázek 1.6: Vývojový diagram genetického programovánı́ 1.3.3 Algoritmus genetického programovánı́ Na obrázku 1.6 je vývojový diagram algoritmu genetického programovánı́ podle [18]. Jde vlastně o obecný diagram 1.1 rozvedený do podrobna. Použı́vá se generačnı́ model evoluce s konstantnı́ velikostı́ populace N jedinců. Vytvářenı́ nových jedinců zajišt’ujı́ operátory křı́ženı́ a mutace. Po volbě selekčnı́ metody a mı́ry kvality jedinců nabude algoritmus zcela konkrétnı́ podoby. Jediným krokem, který si ještě zasluhuje podrobnějšı́ vysvětlenı́ je generovánı́ počátečnı́ populace. KAPITOLA 1. EVOLUČNÍ VÝPOČETNÍ TECHNIKY 22 Způsob, kterým se generujı́ jedinci v počátečnı́ populaci je velmi podobný fungovánı́ operátoru mutace (viz. podsekce 1.3.2). Stromy se nechajı́ náhodně vyrůst“ rekurzivnı́m připojovánı́m jednotlivých symbolů ke kořeni. Tento ” proces skončı́ bud’ samovolně nebo dosaženı́m předem určené hloubky D. Existujı́ dva základnı́ způsoby generovánı́ stromů: růstové a úplné. V obou přı́padech se začı́ná náhodným výběrem kořenového symbolu z množiny F . Růstové generovánı́ dále pokračuje (stejně jako operátor mutace) rekurzivnı́m přidávánı́m uzlů z množiny C = F ∪ T , úplné generovánı́ přidává uzly pouze z množiny F . Po dosaženı́ hloubky D − 1 se uzly začnou vybı́rat z množiny T , čı́mž se proces růstu ukončı́. Růstové i úplné generovánı́ se obvykle kombinujı́ pro dosaženı́ velké rozmanitosti počátečnı́ populace. Koza ve své knize [14] doporučuje metodu označovanou ramped half and half : Pracuje s maximálnı́ hloubkou Dinit = 6. 20% populace pak generuje s hloubkou D = 2, 20% s hloubkou D = 3, atd., až 20% s hloubkou D = 6. V každé skupině je přitom polovina stromů vytvořena růstovým a polovina úplným generovánı́m. 1.3.4 Genetické programovánı́ s typovánı́m V mnoha aplikacı́ch bývá obtı́žné dodržet požadavek uzavřenosti množiny funkcı́ a terminálů. Přı́kladem může být reprezentace logických výrazů typu X ≤ 0 ∨ (Y > X ∧ X > 1), které obsahujı́ relačnı́ operátory, čı́selné proměnné a konstanty. V takovém přı́padě by bylo přirozené definovat množinu funkcı́ F = {∧, ∨, ≤, >} a množinu terminálů T = {X, Y, 0, 1}. Tyto množiny ale uzavřenost nesplňujı́: Logické spojky ∧ a ∨ pracujı́ pouze s logickými argumenty a relačnı́ operátory ≤ a > pouze s čı́selnými argumenty X, Y , 0 a 1. Zanedbánı́m uzavřenosti by křı́ženı́m a mutacı́ vznikaly stromy reprezentujı́cı́ nesmyslné výrazy. Tento problém je možné obejı́t za pomoci modifikace genetického programovánı́ podle [19], známé jako genetické programovánı́ s typovánı́m (strongly typed genetic programming). Ta zavádı́ pojem typ funkce, či terminálu. Jedná se o druh hodnoty, kterou funkce či terminál vracı́“ na svém výstupu nebo ” vyžaduje na svém vstupu. V přı́kladu s logickými funkcemi by existovaly dva typy: čı́slo a logická hodnota. Každému symbolu z množiny C = F ∪ T je pak přiřazen typ výstupnı́ hodnoty. Symbolům z množiny F jsou navı́c přiřazeny typy jednotlivých vstupnı́ch hodnot. Přiřazenı́ typů pro přı́klad s logickými funkcemi shrnuje tabulka 1.1. Vlastnı́ modifikace genetického programovánı́ spočı́vá v zařazenı́ mechanismu typové kontroly“ do rekombinačnı́ch operátorů a do algoritmu gene” rovánı́ počátečnı́ populace. To konkrétně znamená dvě omezenı́: KAPITOLA 1. EVOLUČNÍ VÝPOČETNÍ TECHNIKY 23 symbol typ výstupu typ 1. vstupu typ 2. vstupu ≤ log. hodnota čı́slo čı́slo > log. hodnota čı́slo čı́slo ∧ log. hodnota log. hodnota log.hodnota ∨ log. hodnota log. hodnota log.hodnota X čı́slo Y čı́slo 0 čı́slo 1 čı́slo Tabulka 1.1: Přı́klad přiřazenı́ typů symbolům 1. Kořenem stromu může být pouze uzel vracejı́cı́ hodnotu téhož typu, jaký je očekáván na výstupu programu. 2. Každý uzel kromě kořene vracı́ hodnotu typu, který na svém vstupu očekává jeho rodičovský uzel. Kapitola 2 Specifikace zadánı́ Jak už bylo řečeno v úvodu, cı́lem této práce je vytvořit systém schopný řešit klasifikačnı́ úlohy. Nejdřı́ve je třeba definovat, o jaké úlohy se jedná. Necht’ je nějaký objekt popsán dvěma parametry x = (x1 , x2 , . . . , xn ) a k. Prvnı́ z nich je pozorovatelný a druhý je skrytý. Parametr x se nazývá pozorovánı́ nebo také vektor přı́znaků a nabývá hodnot z množiny X = X1 × X2 × . . . × Xn . Parametr k nabývá hodnot z nějaké konečné množiny K. Nazývá se třı́da (class) nebo také skrytý stav objektu. Klasifikace spočı́vá v odhalenı́ hodnoty skrytého stavu objektu na základě hodnot přı́znaků, neboli v zařazenı́ objektu do správné třı́dy. Program, který klasifikaci provádı́, se nazývá klasifikátor. Množiny přı́znaků X1 , X2 , . . . , Xn mohou být v obecném přı́padě jakékoli. Jejich prvky mohou být symboly z nějaké abstraktnı́ abecedy, čı́sla nebo třeba grafy či obrázky. V této práci se úloha pojı́má v užšı́m smyslu. Uvažujı́ se pouze přı́znaky třı́ základnı́ch typů, které se ale v praktických úlohách objevujı́ nejčastěji: Nominálnı́ hodnoty. Jejich množina je konečná a nemá žádnou vnitřnı́ strukturu. Přı́klad: { červená, zelená, modrá }. Jedinou vlastnostı́ nominálnı́ hodnoty vzhledem k nějaké množině je přı́slušnost či nepřı́slušnost k této množině. Uspořádané hodnoty. Jejich množina je taktéž konečná. Na množině existuje relace uspořádánı́, dı́ky nı́ž lze hodnoty mezi sebou porovnávat. Přı́klad: { studené, vlažné, teplé, horké }. Reálná čı́sla. Jejich množina nenı́ konečná. Existujı́ zde kromě relace uspořádánı́ i operace jako sčı́tánı́, násobenı́, atd. Aby bylo možné klasifikačnı́ úlohu řešit, je třeba vědět, jakým způsobem závisı́ třı́da objektu na přı́znacı́ch. Triviálnı́m způsobem řešenı́ by bylo zjistit a zapamatovat si tuto závislost pro všechny jednotlivé objekty, které se 24 KAPITOLA 2. SPECIFIKACE ZADÁNÍ 25 mohou objevit na vstupu klasifikátoru. Takový postup je většinou nemožný hned ze dvou přı́čin. Tou prvnı́ je, že objektů, které je třeba umět klasifikovat, bývá velké nebo nekonečné množstvı́. Druhou je fakt, že konkrétnı́ hodnoty přı́znaků obvykle neurčujı́ třı́du objektu jednoznačně. Bud’ dı́ky šumu, který zkresluje měřenı́ přı́znaků nebo proto, že náhoda je součástı́ podstaty klasifikovaného objektu. Z těchto důvodů je třeba nalézt závislost třı́dy na přı́znacı́ch ve formě obecného zákona, který platı́ pro celou množinu objektů, které se majı́ klasifikovat. Takový zákon zı́skává bud’ člověk teoretickým rozborem úlohy a modelovánı́m nebo program, který jej automaticky zjišt’uje v tzv. procesu učenı́. Při učenı́ se programu předkládá série přı́kladů pozorovánı́ x1 , x2 , . . . , xn doplněná o správnou klasifikaci každého vzorku k1 , k2 , . . . , kn . Řı́ká se jı́ trénovacı́ množina. Úkolem programu je na základě těchto konkrétnı́ch přı́kladů nalézt obecnou vlastnost množiny, ze které přı́klady pocházejı́. Touto vlastnostı́ nemusı́ být nutně celý zákon či model popisujı́cı́ vztah přı́znaků a třı́dy. Učenı́ se použı́vá i v přı́padech, kdy je model zhruba znám, ale je třeba doladit“ některé jeho parametry. Napřı́klad se zjistı́, že závislost ” třı́dy na přı́znacı́ch dobře popisuje normálnı́ rozdělenı́ pravděpodobnosti, ale je třeba přesně určit jeho střednı́ hodnotu a rozptyl. Takový postup je vhodný vždy, když apriornı́ znalost úlohy dovoluje ručně“ odvodit vhodný model. ” Pohodlným přı́stupem k řešenı́ klasifikačnı́ úlohy je nezabývat se jejı́ analýzou a prostě vyzkoušet jeden z univerzálnı́ch“ algoritmů strojového učenı́. ” Takové algoritmy nepotřebujı́ kromě trénovacı́ množiny žádné apriornı́ informace. Nejsou to ale zázračné nástroje schopné vyřešit jakoukoli klasifikačnı́ úlohu. Teoreticky nenı́ možné vytvořit opravdu univerzálnı́ algoritmus, který dobře zobecňuje na libovolné trénovacı́ množině [24]. Přesto existujı́ klasické algoritmy strojového učenı́, které se použı́vajı́ ve stejné podobě pro řešenı́ mnoha různých klasifikačnı́ch úloh. To ukazuje, že řada úloh má společné rysy, které přeci jen dovolujı́ vytvořit algoritmus do jisté mı́ry univerzálnı́. Cı́lem této práce je vytvořit právě takový univerzálnı́“ či alespoň vı́ce” účelový klasifikačnı́ systém. Ten má být schopen vytvořit model souvislosti přı́znaků a třı́dy na základě dat z trénovacı́ množiny. Vodı́tkem k vytvořenı́ modelu jsou přitom nejen hodnoty přı́znaků v trénovacı́ množině, ale i jejich typy, uvedené na začátku této kapitoly. Typ přı́znaku napovı́dá, jaké operace nad přı́znaky využı́t v modelu hledané závislosti. Jde právě o operace a relace definované na definičnı́ch oborech přı́znaků. Jak už bylo řečeno, je důležité využı́t apriornı́ch znalosti o úloze, pokud existujı́. Proto se uživateli umožnı́ definovat dalšı́ operace nad přı́znaky, které se pak využijı́ jako stavebnı́ kameny celého modelu. Cı́lem je postihnout a využı́t přı́padnou hrubou znalost o úloze, kdy se nevı́, jak by měl model celkově vypadat. Pouze je známo nebo se tušı́, jaké vlastnosti přı́znaků či operace nad přı́znaky jsou podstatné pro správné rozpoznánı́ třı́dy. Struktura mo- KAPITOLA 2. SPECIFIKACE ZADÁNÍ 26 delu se bude hledat pomocı́ evolučnı́ho algoritmu. Důležitou součástı́ zadánı́ úlohy je volba hodnotı́cı́ho kritéria klasifikace. Asi nejčastěji použı́vaným kritériem je pravděpodobnost správné klasifikace, respektive jejı́ experimentálně zjištěný odhad. Stejný způsob hodnocenı́ použı́vá i tato práce, kvůli možnosti srovnánı́ s publikovanými výsledky jiných metod. Je třeba řı́ci, že toto kritérium nenı́ zdaleka jediné možné. Pro některé úlohy se vůbec nehodı́. Dobře to objasnı́ malý přı́klad: Úkolem je zjistit u testovaných osob přı́tomnost vážného onemocněnı́. Podařı́ se zı́skat klasifikátor, který správně rozhoduje u 98% přı́padů. Tento na prvnı́ pohled dobrý výsledek rychle ztratı́ svůj lesk, zjistı́-li se, že onemocněnı́m ve skutečnosti trpı́ pouze 2% testovaných osob. V takovém přı́padě by dosáhl zmı́něné úspěšnosti i klasifikátor, který by nezávisle na přı́znacı́ch prohlásil všechny testované za zdravé. Problém zde spočı́vá v nerovnoměrném zastoupenı́ třı́d v klasifikovaných datech. Smysluplné hodnotı́cı́ kritérium musı́ být formulováno jiným způsobem. Několik vhodných formulacı́ pro úlohy tohoto typu je možné nalézt v knize [23]. Kapitola 3 Popis řešenı́ Ze specifikace v kapitole 2 vyplývá, že hlavnı́m úkolem konstruovaného systému je nalézt závislost třı́dy na přı́znacı́ch ve formě obecných zákonitostı́. Ty majı́ být reprezentovány tak, aby bylo možné využı́t přı́padných apriornı́ch znalosti o řešené úloze. Jako vhodný způsob reprezentace schopný pojmout tyto znalosti byly zvoleny široce využı́vané rozhodovacı́ stromy (decision trees) [21]. Sekce 3.1 vysvětluje, co jsou to rozhodovacı́ stromy, jaký druh rozhodovacı́ch stromů použı́vá tato práce a jakou roli má při jejich vytvářenı́ evoluce. Sekce 3.2 a 3.3 popisujı́ stavebnı́ kameny“ použitých roz” hodovacı́ch stromů, tzv. pravidla. Sekce 3.4 popisuje způsob hledánı́ jednotlivých pravidel pomocı́ genetického programovánı́. Celý algoritmus tvorby neboli indukce rozhodovacı́ch stromů souhrnně popisuje sekce 3.5. V sekci 3.6 je navrženo rozšı́řenı́ celé metody, které se zakládá na využitı́ celých souborů rozhodovacı́ch stromů neboli lesů (forests). Cı́lem tohoto rozšı́řenı́ je dosáhnout přesnějšı́ klasifikace a omezit efekt tzv. přeučenı́ klasifikátoru. 3.1 Rozhodovacı́ stromy Rozhodovacı́ strom provádı́ klasifikaci na základě několika testů provedených nad přı́znaky rozpoznávaného objektu. Je to acyklický graf, jehož vnitřnı́ uzly reprezentujı́ testy prováděné nad objekty, hrany určujı́ pořadı́ prováděnı́ jednotlivých testů a listy reprezentujı́ rozhodnutı́ o třı́dě objektu. Každý vnitřnı́ uzel má přitom právě tolik synů, kolik různých výsledků může jı́m reprezentovaný test mı́t. Při klasifikaci neznámého objektu se nejprve provede test v kořeni stromu. Hrana přı́slušná k výsledku testu určuje dalšı́ test, který se provede následovně. Takto klasifikovaný objekt propadne“ stromem až ” k některému listu, který předpovı́ jeho třı́du. Nejčastěji použı́vané testy majı́ tvar podmı́nek xi ≤ c pro spojité atri27 KAPITOLA 3. POPIS ŘEŠENÍ 28 buty a xj = k pro diskrétnı́ atributy, kde xi , xj jsou atributy a c, k nějaké konstanty. Takové testy majı́ dva možné výsledky: ano/ne, platı́/neplatı́. Výsledné rozhodovacı́ stromy jsou proto binárnı́. Stromy tohoto typu vytvářı́ např. známý algoritmus C4.5 [22]. Při jejich vytvářenı́ pomocı́ trénovacı́ množiny se zpravidla postupuje od kořene směrem k listům. Nejprve se hledá přı́znak xi a konstanta c tak, aby test xi ≤ c co nejlépe diskriminoval objekty jednotlivých třı́d. Poté se trénovacı́ množina podle nalezeného testu rozdělı́ do dvou disjunktnı́ch podmnožin. Pro každou ze zı́skaných podmnožin se stejným způsobem hledá dalšı́ test. Trénovacı́ množina se takto rekurzivně dělı́, dokud nenı́ nalezena podmnožina obsahujı́cı́ pouze přı́klady jedné třı́dy nebo dokud nenı́ splněno nějaké předem dané kritérium ukončenı́. Vyjadřovacı́ schopnost právě popsaných stromů nenı́ přı́liš veliká. Lze ji podstatně obohatit, pokud se v uzlech stromu připustı́ i složitějšı́ testy. Napřı́klad aritmetické výrazy pro čı́selné přı́znaky jako např. x1 − x2 sin x3 ≤ c, logické výrazy pro přı́znaky které nabývajı́ hodnot pravda/nepravda, atd. Stromy s takovými testy se nazývajı́ oblique decision trees [20]. O složitějšı́ch testech, jejichž výsledkem jsou hodnoty ano/ne, se mluvı́ též jako o pravidlech. Lepšı́ vyjadřovacı́ schopnost pravidel oproti jednoduchým testům se může projevit v menšı́ velikosti vytvářených rozhodovacı́ch stromů a ve vyššı́ přesnosti klasifikace. Zejména pokud zvolený vyjadřovacı́ jazyk“ pravidel do” volı́ vystihnout specifické rysy řešené úlohy. V této práci se použı́vajı́ právě takovéto stromy s pravidly. Hledánı́ vhodných pravidel složitějšı́ struktury je náročný úkol pro heuristickou metodu: Je potřeba zvolit vhodné kritérium kvality pravidel a poradit si s těžkou optimalizačnı́ úlohou. K tomuto účelu se zde použı́vá genetické programovánı́. Kritérium kvality pravidel je přitom založeno na měřenı́ neurčitosti, která se pravidlem odstranı́ z trénovacı́ množiny. 3.2 Kritérium kvality pravidel Kritérium kvality pravidel musı́ odrážet jejich schopnost správně diskriminovat přı́klady v trénovacı́ množině, které náležejı́ k různým třı́dám. Zvoleným kritériem hodnocenı́ pravidel je množstvı́ informace o třı́dách přı́kladů v trénovacı́ množině, které pravidlo poskytuje. Jinak řečeno to znamená, že úkolem pravidla je maximálně snı́žit neurčitost obsaženou v trénovacı́ množině. Jejı́ množstvı́ v bitech je možné čı́selně vyjádřit pomocı́ Hartleyovy mı́ry informace H (viz. např. [18]). Toto čı́slo lze interpretovat jako délku nejkratšı́ zprávy (v bitech), která o všech přı́kladech trénovacı́ množiny řı́ká, do jaké třı́dy patřı́. Podobné kritérium použil J. R. Quinlan pro algoritmus ID3 [21]. Necht’ M je trénovacı́ množina o n přı́kladech. Počet třı́d, do kterých 29 KAPITOLA 3. POPIS ŘEŠENÍ je možné přı́klady klasifikovat, necht’ je s. Počty přı́kladů v M náležejı́cı́ jednotlivým třı́dám necht’ jsou n1 , n2 , n3 , . . . , ns . Mı́ra informace v množině je pak dána vzorcem: H(M ) = − s X ni log2 i=1 ni . n (3.1) Navı́c se definuje H(∅) = 0 a 0 log2 0 = 0. Minimálnı́ neurčitosti Hmin = 0 se dosahuje, pokud jsou v trénovacı́ množině pouze přı́klady jedné třı́dy. Neurčitost je shora omezena hodnotou Hmax = n log2 s. Té se dosahuje, je-li počet přı́kladů každé třı́dy stejný. Pravidlo p rozděluje přı́klady v trénovacı́ množině M do dvou navzájem disjunktnı́ch podmnožin. Prvnı́ množina, zde označená MP , obsahuje všechny přı́klady, které splňujı́ podmı́nku pravidla. Druhá množina, MN = M \ MP , obsahuje přı́klady, které podmı́nku nesplňujı́. Kritérium kvality pravidla je definováno jako množstvı́ informace I, které se zı́ská rozdělenı́m množiny M na podmnožiny MP a MN . Řı́ká se mu informačnı́ zisk a udává jej rovnice: I(p) = H(M ) − H(MP ) − H(MN ). (3.2) Rozdělenı́ trénovacı́ množiny podle maximálnı́ho informačnı́ho zisku se typicky projevı́ ve výrazné změně zastoupenı́ přı́kladů jednotlivých třı́d v množinách MP a MN . Situaci ilustruje obrázek 3.1. Poměrné zastoupenı́ prvků i-té třı́dy v množině udává čı́slo pi , resp. pPi , pN i . Tento přı́klad také ukazuje, jak je možné interpretovat význam pravidel. Pravidlo na obrázku je možné (s jistou neurčitostı́) vyjádřit větou: Pokud přı́znaky splňujı́ test, spadá klasifikovaný objekt do třı́dy 2 nebo 3. Nebo také: Pokud přı́znaky nesplňujı́ test, spadá klasifikovaný objekt do třı́dy 1 nebo 3. M p1 p2 p3 pravidlo ANO P MP p1 p2P p3P NE MN p1N p2N p3N Obrázek 3.1: Závěr pravidla implicitně KAPITOLA 3. POPIS ŘEŠENÍ 3.3 30 Struktura pravidel Tato sekce popisuje, co je obsahem pravidel v uzlech rozhodovacı́ho stromu. Pravidlo je v podstatě výraz sestavený z proměnných reprezentujı́cı́ch přı́znaky a z operátorů či funkcı́, které s přı́znaky pracujı́. Výraz může pro jednotlivé klasifikované objekty nabývat hodnoty pravda nebo nepravda. Takový výraz je možné vyjádřit pomocı́ stromu, tj. acyklického grafu. Přı́klad takového vyjádřenı́ je na obrázku 3.2. Uzly stromu tvořı́ symboly dvou typů: terminály a funkce. Terminály jsou symboly v listech stromu. Reprezentujı́ přı́znaky a dalšı́ entity (např. čı́selné konstanty), které majı́ význam pro řešenı́ dané klasifikačnı́ úlohy. Množina terminálů se značı́ T . Každý terminál t z množiny T je charakterizován množinou Ht , svým oborem hodnot. Tu tvořı́ všechny hodnoty, které může terminál t reprezentovat. Pro terminál představujı́cı́ přı́znak xi tedy platı́ Hxi = Xi . Funkce představujı́ operace, které je možné provádět nad terminály a výsledky jiných funkcı́. Tvořı́ vnitřnı́ uzly stromu. Množina funkcı́ se značı́ F . Každá funkce je také charakterizována svým oborem hodnot Hf , tj. množinou všech hodnot, kterých může funkce nabýt. Dalšı́ charakteristikou funkce jsou jejı́ argumenty, kterých může být konečný počet, a jejı́ definičnı́ obor. Definičnı́ obor funkce f je tvořen sadou množin Dfi , kterých je právě tolik, kolik má funkce argumentů. i-tému argumentu funkce f se přidružuje množina Dfi sdružujı́cı́ všechny hodnoty, kterých smı́ argument nabýt. Každý vnitřnı́ uzel tvořený funkcı́ f má tolik synů, kolik má f argumentů. Strom nemůže být z prvků množin F a T sestaven libovolným způsobem. Aby představoval platné pravidlo, musı́ být splněny dva požadavky: 1. Každá funkce dostane takové argumenty, které náležejı́ do jejı́ho definičnı́ho oboru. To znamená, že pro terminál t, který je i-tým argumentem funkce f musı́ platit Ht ⊆ Dfi . 2. V kořenovém uzlu stromu se nacházı́ funkce, jejı́mž oborem hodnot Hf je dvouprvková množina { pravda, nepravda }. To znamená, že podmı́nka musı́ být bud’ splněna nebo nesplněna. Jiné možnosti nejsou přı́pustné. Nynı́ krátký přı́klad pro ilustraci. Necht’ objekty, které se majı́ klasifikovat, jsou popsány dvojicı́ čı́selných přı́znaků x1 , x2 . Předpokládá se, že objekty jednotlivých třı́d je možné rozlišit podle pravdivosti podmı́nek typu f (x1 , x2 ) > 0. Přitom funkce f je neznámou kompozicı́ součtů, rozdı́lů a součinů svých argumentů. Množina T a obory hodnot terminálů se definuje takto: T = {x1 , x2 }, Hx1 = X1 , Hx2 = X2 . 31 KAPITOLA 3. POPIS ŘEŠENÍ >0 − x2 + * x1 − x2 x1 x1 Obrázek 3.2: Přı́klad pravidla Množina funkcı́ bude F = {+, −, ∗, (> 0)}. Funkce (> 0) má jeden argument, kterým může být libovolné reálné čı́slo. Jejı́ návratová hodnota je bud’ pravda, pokud je argument většı́ než nula, nebo nepravda v opačném přı́padě. Význam ostatnı́ch funkcı́ a terminálů je v jejich obvyklém smyslu čı́selných operacı́. Jejich definičnı́ obory a obory hodnot jsou zřejmé. Obrázek 3.2 ukazuje přı́klad platné podmı́nky sestavené z definovaných funkcı́ a terminálů. Funkce a terminály tedy tvořı́ vyjadřovacı́ jazyk pravidel, kterým se modelujı́ závislosti v datech. Pomocı́ vhodných terminálů je možné vyjádřit různé vlastnosti klasifikovaných objektů a pomocı́ různých funkcı́ zase různé závislosti v datech. Např. funkce sinus může popsat periodické jevy v datech, funkce kd ≤ x < kh“ se hodı́ k popisu shluků, atd. Jaký soubor funkcı́ ” a terminálů je vhodný, záležı́ na povaze řešené úlohy. V ideálnı́m přı́padě uživatel systému sám definuje potřebné funkce a terminály. Jinou možnostı́ je využı́t základnı́ch funkcı́ a terminálů, které jsou v systému předdefinované“ ” ke každému použitému přı́znaku. Přehled o nich podává tabulka 3.1. Pro každý použitý přı́znak (at’ je nominálnı́, z uspořádané množiny nebo čı́selný) je k dispozici terminál x, který vyjadřuje hodnotu přı́znaku, a terminál R, který reprezentuje náhodně vybranou konstantu z definičnı́ho oboru tohoto přı́znaku. Pro každý typ přı́znaku je dále k dispozici funkce =, tj. porovnánı́ hodnot z jeho definičnı́ho oboru na ekvivalenci, která nabývá logických 32 KAPITOLA 3. POPIS ŘEŠENÍ Typ hodnot Nominálnı́ hodnoty Uspořádané hodnoty Reálná čı́sla Logické hodnoty Terminály x, R x, R x, R Funkce = =, > =, >, +, −, ∗, sin, (> 0) ∧, ∨, ¬ Tabulka 3.1: Předdefinované terminály a funkce hodnot {pravda, nepravda}. Pro přı́znaky, které jsou z uspořádané množiny nebo jsou čı́selné, je dále definována funkce porovnánı́ >, která opět nabývá logických hodnot. Pouze pro čı́selné přı́znaky jsou též definovány aritmetické operace +, −, ∗ a funkce sinus. Aby bylo možné vytvářet výrazy obsahujı́cı́ jak čı́selné, tak i nominálnı́ a uspořádané přı́znaky, definujı́ se ještě logické funkce ∧, ∨ a ¬ (konjunkce, disjunkce a negace). Pomocı́ nich je pak možné tvořit složené výrazy, jak ukazuje přı́klad na obrázku 3.3. AND x1 0,5 = OR žlutá > > + 1 x3 nízký sin x2 Obrázek 3.3: Přı́klad pravidla s různými typy přı́znaků KAPITOLA 3. POPIS ŘEŠENÍ 3.4 33 Hledánı́ pravidel pomocı́ genetického programovánı́ Hledánı́ jednotlivých pravidel, uzlů rozhodovacı́ho stromu, je úkol svěřený evolučnı́mu algoritmu. K tomuto účelu bylo zvoleno genetické programovánı́. Volba vyplývá ze způsobu reprezentace jedinců pomocı́ stromů. Ten se velmi dobře hodı́ pro pravidla ve tvaru, který byl popsán v sekci 3.3. Terminály a funkce pravidel mohou přı́mo tvořit terminály a funkce genetického programovánı́. Jedinou překážkou použitı́ standardnı́ho algoritmu genetického programovánı́ je požadavek uzavřenosti množin funkcı́ a terminálů (viz. 1.3.1). Lze jej obejı́t pomocı́ rozšı́řenı́ standardnı́ho algoritmu o typovou reprezentaci popsanou v sekci 1.3.4. Zavedou se typy sdružujı́cı́ funkce a terminály, které jsou navzájem kompatibilnı́ ve smyslu požadavků sekce 3.3. Napřı́klad čı́sla, čı́selné přı́znaky a funkce, které s čı́sly pracujı́. Logické hodnoty, logické přı́znaky a logické funkce. Definičnı́ obory a obory hodnot funkcı́ a terminálů se pak vyjádřı́ odpovı́dajı́cı́mi typy. Kvalitou (fitness) jedinců-pravidel je informačnı́ zisk daný rovnicı́ 3.2. Použı́vá se turnajová selekce mezi dvojicemi jedinců a generačnı́ reprodukčnı́ model. Z rekombinačnı́ch operátorů se použı́vajı́ křı́ženı́ s pravděpodobnostı́ 0, 7, mutace s pravděpodobnostı́ 0, 1 a reprodukce (přesná kopie jedince) s pravděpodobnostı́ 0, 2. Velikost populace je volitelným parametrem. Pro obtı́žnějšı́ úlohy je výhodné pracovat s velkou populacı́. Limitujı́cı́m faktorem zde bývá časová náročnost výpočtu, která lineárně roste jak s velikostı́ populace, tak s velikostı́ trénovacı́ množiny. Při experimentech v kapitole 4 se pracuje s 300 − 500 jedinci v populaci. Dalšı́m parametrem je maximálnı́ délka vyvı́jených pravidel. Je to nejvyššı́ počet symbolů (terminálů a funkcı́), který může pravidlo mı́t. Tento parametr je obdobou maximálnı́ dovolené hloubky stromu, kterou omezuje velikost jedinců Koza [14]. Délka jednotlivých pravidel nemusı́ být velká dı́ky rozloženı́ procesu klasifikace do několika úrovnı́ rozhodovacı́m stromem. Při testovánı́ algoritmu na různých úlohách (viz. kapitola 4) se osvědčila délka 8 − 20. Kratšı́ pravidla nemajı́ schopnost adaptovat se na data“ a pro spolehlivé ” naučenı́ delšı́ch pravidel obvykle nenı́ k dispozici dostatečně velká trénovacı́ množina. Evoluce složitějšı́ch pravidel je navı́c časově náročná. Hledánı́ pravidla se ukončuje, pokud je splněna alespoň jedna z následujı́cı́ch podmı́nek: • Neurčitost v trénovacı́ množině je úplně odstraněna (to se stává zřı́dka). • Nebylo dosaženo zlepšenı́ po 20 generacı́. • Algoritmus běžel po n generacı́ (pro n se použı́vá výchozı́ hodnota 100). KAPITOLA 3. POPIS ŘEŠENÍ 3.5 34 Algoritmus indukce rozhodovacı́ch stromů Typický postup indukce rozhodovacı́ch stromů byl nastı́něn už v úvodnı́ sekci 3.1. Jde o indukci shora dolů, kdy se začı́ná hledánı́m kořenového pravidla a postupuje se směrem k listům. Takový algoritmus se použı́vá i v této práci. Jeho vývojový diagram je na obrázku 3.4. Postupně rozděluje trénovacı́ množinu na stále menšı́ části pomocı́ pravidel, která hledá genetické programovánı́ tak, aby maximálně snižovala neurčitost obsaženou v rozdělovaných množinách. Pravidla, která jsou blı́že kořenu stromu, jsou naučena na většı́ části trénovacı́ množiny a vystihujı́ tak jejı́ globálnı́ vlastnosti. Pravidla v dalšı́ch patrech stromu popisujı́ lokálnı́ vlastnosti, které se nepodařilo popsat pomocı́ pravidel vyššı́ úrovně. S rostoucı́ hloubkou rozhodovacı́ho stromu se pravidla stávajı́ stále speciálnějšı́: Jsou učena na stále menšı́ části původnı́ trénovacı́ množiny. Tı́m také roste nebezpečı́, že nalezené pravidlo nebude popisovat obecnou vlastnost množiny, ale pouze náhodné uspořádánı́ několika málo přı́kladů. Tomuto efektu se řı́ká přeučenı́ (overfitting) klasifikátoru a jeho důsledkem je snı́žená přesnost klasifikace. Je proto důležité vhodně omezit růst“ rozhodovacı́ho stromu. Za tı́mto účelem se definuje zastavo” vacı́ podmı́nka, která řı́ká, jaké množiny se už nebudou dále dělit. V této práci se dělenı́ ukončuje, pokud entropie prvků v množině klesne pod předem stanovený limit nebo pokud počet přı́kladů v této množině klesne pod předem stanovené procento velikosti celé trénovacı́ množiny. Entropie S množiny M o n prvcı́ch je průměrná hodnota neurčitosti v množině připadajı́cı́ na jeden přı́klad: H(M ) S(M ) = . (3.3) n Je-li pro nějakou podmnožinu M trénovacı́ množiny splněna zastavovacı́ podmı́nka, je třeba vytvořit list stromu. To znamená rozhodnout o třı́dě objektů, které propadnou“ rozhodovacı́m stromem do stejného mı́sta jako ” přı́klady v M . Celkem přirozeně se vybere třı́da, která má mezi přı́klady v M nejsilnějšı́ zastoupenı́. 3.6 Lesy L. Breiman navrhl v [4] jednoduchou univerzálnı́ metodu pro zlepšenı́ přesnosti klasifikace, kterou nazval bootstrap aggregation, zkráceně bagging. Metoda se zakládá na sdruženı́ několika klasifikátorů do souboru, ve kterém se rozhoduje o třı́dě společně pomocı́ většinové volby. V anglicky psané literatuře se takový soubor klasifikátorů nejčastěji nazývá ensemble. Speciálně pro rozhodovacı́ stromy se použı́vá termı́n les. 35 KAPITOLA 3. POPIS ŘEŠENÍ Zařaď trénovací množinu do fronty Je fronta prázdná? Ano Indukce stromu skončila Ne Vyber množinu z fronty Je splněna zastavovací podmínka? Ano Vytvoř list stromu Ne Najdi pravidlo pomocí genetického programování Vytvoř uzel stromu Rozděl množnu pomocí pravidla a přidej získané podmnožiny do fronty Obrázek 3.4: Algoritmus indukce rozhodovacı́ho stromu Myšlenka této metody je jednoduchá. Předpokládá se, že pravděpodobnost správné klasifikace je u jednotlivých klasifikátorů vyššı́ (alespoň lehce) než 0, 5. To znamená, že správně zobecňujı́ vlastnosti většı́ části trénovacı́ množiny. Dalšı́m předpokladem je, že klasifikátory jsou navzájem výrazně odlišné. Jinak řečeno, že na špatně zobecněných částech trénovacı́ množiny dávajı́ různorodé výsledky. Za těchto předpokladů je pravděpodobné, že se chyby klasifikace dı́ky hlasovánı́ vzájemně potlačı́. Metoda bagging dosahuje různorodosti jednotlivých klasifikátorů jejich učenı́m na odlišných množinách, jakýchsi obměnách“ trénovacı́ množiny. ” Tyto množiny (angl. bootstrap replicates) jsou stejně velké jako původnı́ trénovacı́ množina a jsou tvořeny prvky, které se vybı́rajı́ náhodně a s navra- 36 KAPITOLA 3. POPIS ŘEŠENÍ cenı́m (opakovánı́m) z původnı́ trénovacı́ množiny. Metoda dále předpokládá použitı́ nestabilnı́ho algoritmu pro tvorbu klasifikátorů. To znamená, že malá změna způsobená v trénovacı́ množině způsobı́ velkou změnu výsledného klasifikátoru. Stabilnı́ algoritmus nenı́ pro tuto metodu vhodný. Při jeho použitı́ je pravděpodobné, že se přesnost klasifikace naopak snı́žı́ [4]. Evolučnı́ algoritmy svou nestabilitou přı́mo vynikajı́. Nejsou deterministické, takže tvořı́ při každém běhu odlišný klasifikátor, i když učenı́ probı́há na stejné trénovacı́ množině. Aby se tato vlastnost mohla projevit ještě výrazněji, byl navržen následujı́cı́ postup vytvářenı́ jednotlivých stromů lesa. Metoda indukce rozhodovacı́ch stromů popsaná v sekci 3.1 vytvářı́ nejprve kořenové pravidlo, které silně ovlivňuje, jak budou vypadat pravidla v dalšı́ch patrech stromu. Změnou kořenového pravidla je tak možné dosáhnout podstatné změny struktury celého stromu, zvláště u stromů menšı́ hloubky. Proto se kořenová pravidla jednotlivých stromů lesa cı́leně hledajı́ tak, aby byla vzájemně co nejvı́ce odlišná. V kritériu kvality kořenových pravidel se zohledňuje, jak je vyvı́jené pravidlo odlišné od ostatnı́ch, dřı́ve zı́skaných kořenových pravidel. Odlišnost pravidel se chápe tak, že každé odstraňuje jinou část“ neurčitosti v trénovacı́ množině. Postup hledánı́ kořenových pra” videl vypadá následovně: Kořenové pravidlo prvnı́ho stromu lesa se hledá podle standardnı́ho kritéria: Má maximalizovat informačnı́ zisk na trénovacı́ množině. Kořenové pravidlo druhého stromu se hledá podle pozměněného kritéria: má minimalizovat neurčitost, která nebyla odstraněna prvnı́m pravidlem. Tedy: Dělı́-li prvnı́ pravidlo trénovacı́ množinu M na podmnožiny MP 1 a MN 1 , je úkolem druhého pravidla maximalizovat informačnı́ zisk I(MP 1 ) + I(MN 1 ). Kořenové pravidlo třetı́ho stromu má minimalizovat neurčitost, která nebyla odstraněna pravidlem z prvnı́ho ani druhého stromu, atd. Pozměněné kritérium pro kořenové pravidlo i-tého stromu lze vyjádřit jako J(pi ) = min {I(MP j ) + I(MN j )}, j≤i−1 i = 2, . . . , R, (3.4) kde MP j , MN j jsou množiny, na které kořenové pravidlo j-tého stromu rozděluje trénovacı́ množinu. Index j probı́há přes všechna pravidla vytvořená před pravidlem pi . Existujı́ i metody, které umožňujı́ zı́skat odlišná pravidla v rámci jedné populace evolučnı́ho algoritmu. Jsou známé jako crowding, fitness sharing a jejich kombinace [11]. Jejich myšlenkou je snı́ženı́ kvality jedinců, kteřı́ vzorkujı́ stejnou oblast prohledávaného prostoru. Tı́m se zamezı́ konvergenci populace k jedinému řešenı́ a podnı́tı́ se prohledávánı́ jiných částı́ prostoru. Populace tak i po řadě generacı́ obsahuje výrazně odlišné jednice vysoké kvality, kteřı́ reprezentujı́ různá alternativnı́ řešenı́. Nevýhodou těchto metod KAPITOLA 3. POPIS ŘEŠENÍ 37 jsou vysoké výpočetnı́ nároky. Při ohodnocenı́ jedince je totiž třeba zjišt’ovat mı́ru jeho podobnosti s ostatnı́mi jedinci v populaci. Z tohoto důvodu byla dána přednost dřı́ve popsané metodě. Kapitola 4 Experimenty Tato kapitola dokumentuje experimenty provedené se systémem. Několik prvnı́ch experimentů názorným způsobem demonstruje základnı́ vlastnosti systému. V sekci 4.1 je ukázáno, jak vypadá hledánı́ pravidla podle kritéria maximálnı́ho informačnı́ho zisku pomocı́ genetického programovánı́. V sekci 4.2 se ukazuje, jaký vliv má volba vhodných či nevhodných funkcı́ a terminálů na vlastnosti rozhodovacı́ho stromu. Sekce 4.3 dokládá zvýšenı́ přesnosti při klasifikaci pomocı́ lesů oproti použitı́ jednotlivých stromů. Dalšı́ experimenty se pokoušejı́ odpovědět na vybrané otázky motivované snahou o optimálnı́ využitı́ výpočetnı́ch prostředků a vytvářenı́ přesných klasifikátorů. Sekce 4.4 srovnává tři postupy tvořenı́ lesa. V prvnı́m přı́padě se jednotlivé stromy lesa vytvářenı́ zcela nezávisle. Ve druhém přı́padě se kořenová pravidla jednotlivých stromů tvořı́ tak, aby byla navzájem výrazně odlišná, za cenu delšı́ doby výpočtu. Ve třetı́m přı́padě se použı́vá metoda bagging navržená v [4]. Který postup vede k nejmenšı́m chybám klasifikace? Zbytečně vysoká chybovost klasifikace může být způsobena přeučenı́m klasifikátoru. Sekce 4.5. ukazuje, že použitı́m lesů se dá efekt přeučenı́ omezit. Poslednı́ částı́ této kapitoly je srovnánı́ s jinými publikovanými metodami na volně dostupných datech z medicı́nského prostředı́ v sekci 4.6. Všechny volitelné parametry systému a podrobnosti o způsobu testovánı́ jsou pro každý experiment uvedeny v tabulce jednotného tvaru (napřı́klad tabulka 4.2). Prvnı́ čtyři řádky tabulky charakterizujı́ klasifikovaná data: počet třı́d, relativnı́ zastoupenı́ přı́kladů jednotlivých třı́d a velikosti množin pro učenı́ a ověřovánı́ přesnosti klasifikace. Dalšı́ch pět řádků obsahuje parametry genetického programovánı́: Použité terminály a funkce, maximálnı́ povolenou délku vyvı́jených pravidel, velikost populace a maximálnı́ počet generacı́, po který smı́ evoluce probı́hat. Na dalšı́m řádku je zastavovacı́ podmı́nka, která řı́dı́ ukončenı́ růstu rozhodovacı́ho stromu. Při jejı́m splněnı́ nedojde k dalšı́mu rozdělenı́ právě zpracovávané části trénovacı́ množiny. 38 KAPITOLA 4. EXPERIMENTY 39 K vyjádřenı́ podmı́nky se použı́vá entropie zpracovávané množiny S a poměr velikosti zpracovávané množiny k velikosti celé trénovacı́ množiny r. K experimentálnı́mu zjištěnı́ přesnosti klasifikátoru se použı́vá testovacı́ množina. Údaje o přesnosti uvedené u jednotlivých experimentů jsou průměrné hodnoty z několika nezávislých běhů programu. V každém běhu jsou všechna data náhodně rozdělena do trénovacı́ a testovacı́ množiny. Počet běhů udává poslednı́ řádek tabulky. 4.1 Demonstrace evoluce pravidel podle informačnı́ho zisku Pro tuto názornou ukázku posloužila uměle vytvořená data, která vzorkujı́ dvě třikrát zapletené spirály. Každá spirála představuje jednu třı́du dat. Na obrázku 4.1 je zachycena evoluce kořenového pravidla rozhodovacı́ho stromu pomocı́ nejlepšı́ch pravidel z vybraných generacı́. Tmavé a světlé oblasti znázorňujı́, jak pravidlo rozděluje prostor přı́znaků X × Y . V každé oblasti převládajı́ vždy prvky jedné třı́dy. Jedná se o typický průběh vývoje pravidla. Analytické vyjádřenı́ zobrazených pravidel shrnuje tabulka 4.1. V tabulce 4.2 jsou uvedeny parametry systému. Terminál R zde představuje konstantu, náhodně zvolené z intervalu h−5, 5i. Logická funkce (> 0) je pravdivá, pokud je jejı́ jediný čı́selný argument většı́ než nula. generace podmı́nka pravidla 1 5 10 14 16 24 34 46 y(x − xy + x)(x + y(−1, 137 − 2.984)(y − 5, 576)2, 401) > 0 x(yx + (x + y(−1, 138 − 2, 984)(y − 5, 576)2, 401)) > 0 y(x − x + 0, 9013 + x)(x + y(−1, 13769 − 2, 984)(y − 5, 576)2, 401) > 0 9, 513(−0, 216(5, 020 − x) + x)(x + (x + (y − 2, 984)2, 401)2, 401) > 0 y(0, 951 + x)(−0, 216yy(x + y) + x)(yx + −0, 556) > 0 (x + (−0, 5560, 401))((x − 7, 458) + (x + y2, 401)y)(yx + −0, 556) > 0 x(yx + −0, 556)(−0, 216y(x + y)(x + y) + x)x > 0 −0, 184(yx + −0, 556)(−0, 216y(y + x)(1, 014 + x) + x)x > 0 Tabulka 4.1: Podmı́nky pravidel z obrázku 4.1 KAPITOLA 4. EXPERIMENTY Obrázek 4.1: Typický průběh evoluce kořenového pravidla 40 41 KAPITOLA 4. EXPERIMENTY Počet třı́d Distribuce přı́kladů Trénovacı́ množina Testovacı́ množina Terminály Funkce Max. délka pravidla Velikost populace Max. generacı́ na pravidlo Zastavovacı́ podmı́nka Počet běhů 2 50%, 50% 320 80 T = {x, y, R} F = {+, −, ∗, (> 0)} 16 300 50 S < 0, 9 ∨ r < 0, 1 30 Tabulka 4.2: Parametry experimentu v sekci 4.1 4.2 Vliv terminálů a funkcı́ na vlastnosti rozhodovacı́ho stromu Obrázek 4.2 ukazuje vliv vhodně zvolených funkcı́ a terminálů na velikost a přesnost rozhodovacı́ho stromu. Použité funkce a terminály jsou v tabulce 4.4. V přı́padě a) se použı́vajı́ pouze standardnı́“ operace nad čı́selnými přı́” znaky x, y. Taková pravidla zřejmě nemohou výstižně a jednoduše popsat vlastnosti množiny přı́kladů. Výsledné rozhodovacı́ stromy proto majı́ většı́ hloubku, jak je vidět na obrázku, a menšı́ přesnost. Přı́pad b) zohledňuje apriornı́ znalost kruhové symetrie v√datech. Většı́ vypovı́dacı́ hodnotu o třı́dě má pravděpodobně poloměr“ ρ = x2 + y 2 a po” lárnı́ úhel ϕ = arctg xy . Tyto symboly tedy v množině T nahradı́ původnı́ x, y. Ze stejného důvodu se původnı́ množina funkcı́ F obohatı́ o funkci sinus. Výsledky srovnánı́ ukazuje tabulka 4.3, v průměrných hodnotách ze 60 nezávislých běhů programu. Nejvýznamnějšı́ rozdı́l je ve velikosti rozhodovacı́ch stromů. Tam se nejvı́ce projevuje, že terminály a funkce v přı́padě b) jsou vhodnějšı́ pro řešenou úlohu. Rozdı́ly v přesnosti nejsou velké (tabulka udává 5% interval spolehlivosti). Uspořádánı́ pravidel do rozhodovacı́ho stromu dělá klasifikátor robustnı́m, což může zachránit situaci“ s nevhodně zvolenými ” množinami funkcı́ a terminálů. a) Prům. přesnost klasifikace 95, 58 ± 4, 28% Prům. počet pravidel v rozh. stromu 16, 13 Prům. délka pravidla 10, 78 b) 98, 75 ± 2, 20% 3, 83 11, 53 Tabulka 4.3: Srovnánı́ vlastnostı́ klasifikátorů v sekci 4.2 42 KAPITOLA 4. EXPERIMENTY (x2*−4.48495+x1)* (−0.438516+x2+x1) > 0 x1−x2*(x1−4.64005)− 4.69323*x2 > 0 P N P N 3.24705*x1− (x2+x1)*x2*x2 > 0 0 x1+0.0411172− x1+x2−x1*x2 > 0 1 P P N N x2+−3.85318*x1+ x2*x2 > 0 0 1 (x1*x1−x2)*2.58294*x1−x2 > 0 N P P N (x2−0.89883)* (x1−x2+x1*x2) > 0 0 1 x2+(x1*(x2+x1)*x2+−2.94845) > 0 N P P N (0.901706−x1)* (x1−0.901706*0.901706) > 0 1.37466+x1*4.69929− x2*0.853501*4.69929 > 0 x1−x2*(x2− x1*x1) > 0 0 P P N 1 N P N (x1*(0.750188−x2))* (3.51577+−4.95693*x1) > 0 0 (x1+−0.723081)* (x2−0.74731)* x1*x1 > 0 1 1 N P P N −0.279877+ x1*(x2+x2*x1)*x1 > 0 (−1.13256+x1+x2)* (x2+−0.502087) > 0 (x2*x2−0.26065)* (x2*x1+−0.33062) > 0 P x1+x2+x2−2.32342+ 2.76128*x2 > 0 P N P (−1.27529− x1−x1*3.90781)* (x1−0.326816) > 0 −4.34666+3.89474+ (3.89474+x2)* x1*x2 > 0 P P 1 0 P N P 0 (x2+x1)*x2*x2+ x2−0.743238 > 0 0 1 0 N 1 N 0 N 1 N x1*(x1+x1+ x2*2.08394)−x1 > 0 0 P 0 a) N 1 0 P N P 1 (−0.315634−4.94379)* x2*−0.0934023+ (0.31108−x1) > 0 (x1+−0.434251−x2)* (x2+x2−x1) > 0 N P N P P (x1*1.37252+x2)* x1*x1−x2 > 0 (x2−0.253852)* x2*(x2*x1−0.186767) > 0 0 x2+x2+x2+ (x1*x2+−0.726968) > 0 N N P N 1 (x2*x2−x1)*x2*x1 > 0 N P (x1−0.812966)* 4.45069*1.58117*x2*x2 > 0 −0.854546+ (x1+x1)*x2+x1+x1 > 0 P 1 (x2+x1*x1*−1.57764)* (x2−x1) > 0 P N 0 N 1 1 N 0 sin(sin(ro*−4.55628*−4.99888)) −(−0.790225+sin(fi)) > 0 P N sin(sin(sin(fi)−sin(ro))) *(0.405781−ro) > 0 P 1 N sin(2.98547+ro) *(−3.38968*ro−−0.93076)*fi > 0 0 P sin(fi)*4.38222*(ro−fi) +0.0199543+ro > 0 P sin(sin(ro))−sin(4.26913 *1.60861*−2.21052*ro) > 0 P 1 N N 0 P N sin(ro−3.25639) −(ro+3.25639*fi)*fi > 0 N 0 sin(fi−ro+ro*(−3.66052+−2.50252) *3.99761) > 0 sin(ro−sin(−4.05618*ro *sin(−1.14657)*fi)) > 0 P 0 P 0 N N 1 b) 1 0 Obrázek 4.2: Vliv volby funkcı́ a terminálů na rozhodovacı́ strom KAPITOLA 4. EXPERIMENTY 43 Počet třı́d Distribuce přı́kladů Trénovacı́ množina Testovacı́ množina Terminály 2 50%, 50% 320 80 Ta = {x, y, R} Tb = {ρ, ϕ, R} Funkce Fa = {+, −, ∗, (> 0)} Fb = {+, −, ∗, (> 0), sin} Max. délka pravidla 18 Velikost populace 300 Max. generacı́ na pravidlo 100 Zastavovacı́ podmı́nka S < 0, 9 ∨ r < 0, 1 Počet běhů 60 Tabulka 4.4: Parametry experimentů v sekci 4.2 4.3 Demonstrace klasifikace pomocı́ lesa Na obrázku 4.3 je názorně ukázán rozdı́l mezi klasifikacı́ pomocı́ jednotlivých stromů a klasifikacı́ pomocı́ lesa. Prvnı́ch sedm obrázků ukazuje model dat vytvořený jednotlivými stromy. Terminály a funkce jsou záměrně zvoleny nevhodně (viz. tab 4.5), aby jednotlivé stromy nemohly jednoduše postihnout data. Každý strom se skládá v průměru z 18 pravidel a žádný neklasifikuje data bezchybně. Osmý obrázek v pravém dolnı́m rohu ukazuje model, který se zı́ská pomocı́ lesa, tj. jako výsledkem klasifikace je třı́da, pro kterou se rozhoduje většina stromů. Je vidět, že tı́mto způsobem se vyhladı́“ hrubé chyby jednotlivých ” stromů. Kontura zde připomı́ná spirály lépe než u kteréhokoli ze stromů. Zlepšenı́ nastává, protože jednotlivé stromy klasifikujı́ převážně správně a zároveň dělajı́ chyby na různých mı́stech. 4.4 Srovnánı́ metod pro vytvářenı́ lesů Aby lesy klasifikovaly s vyššı́ přesnostı́ než jednotlivé stromy, je důležité, aby byly složeny z výrazně odlišných stromů. K vytvářenı́ pravidel se použı́vá nedeterministický algoritmus, takže je možné vytvářet odlišné stromy bez jakýchkoli změn v trénovacı́ množině či v algoritmu učenı́. V sekci 3.6 byla navržena metoda, která má tuto vlastnost ještě posı́lit: Kořenová pravidla jednotlivých stromů lesa vytvářı́ podle speciálnı́ho kritéria, které zaručı́, že budou vzájemně výrazně odlišná. Experiment v této sekci ověřuje schopnosti KAPITOLA 4. EXPERIMENTY Obrázek 4.3: Klasifikace jednotlivými stromy a lesem 44 45 KAPITOLA 4. EXPERIMENTY Počet třı́d Distribuce přı́kladů Trénovacı́ množina Testovacı́ množina Terminály Funkce Max. délka pravidla Velikost populace Max. generacı́ na pravidlo Zastavovacı́ podmı́nka Počet běhů 2 50%, 50% 320 80 T = {x, y, R} F = {+, −, ∗, (> 0)} 8 300 50 S < 0, 9 ∨ r < 0, 1 60 Tabulka 4.5: Parametry experimentu v sekci 4.3 této metody. Pro účely experimentu byl uměle vytvořen soubor dat se dvěma čı́selnými přı́znaky x, y, které popisujı́ tři různé třı́dy c1 , c2 , c3 . Data jednotlivých třı́d pocházejı́ z různých směsı́ Gaussovských rozdělenı́: p(x, y|ci ) = X kij N (µij , Σij ). j Na obrázku 4.4 je vzorek vytvořených dat. Symboly ×, ◦ a ∗ představujı́ vzorky jednotlivých třı́d. Je vidět, že třı́dy nejsou navzájem dokonale separovatelné. V optimálnı́m přı́padě lze dosáhnout přesnosti klasifikace cca 95%. Na těchto datech byla srovnána přesnost klasifikace lesů vytvářených třemi různými metodami. V prvnı́m přı́padě byly lesy složeny z nezávisle vytvořených stromů, které byly učeny na stejné trénovacı́ množině. Ve druhém přı́padě byla použita metoda bagging, (viz. 3.6). Ve třetı́m přı́padě byla použita metoda navržená v sekci 3.6, která vytvářı́ stromy s výrazně odlišnými kořenovými pravidly. Graf na obrázku 4.5 dokumentuje výsledky experimentu. Parametry systému při experimentu jsou uvedeny v tabulce 4.6. Ze srovnánı́ nejlépe vycházı́ metoda s odlišnými kořenovými pravidly. Zlepšenı́ se u nı́ projevuje už při malém počtu stromů v lese. Důvodem je zřejmě nejvýraznějšı́ tlak na odlišnost jednotlivých stromů lesa. Jejı́ nevýhodou jsou zvýšené výpočetnı́ nároky spojené s výpočtem složitějšı́ho kritéria kvality pravidel. Výhody této metody se proto nejvı́ce projevı́ při vytvářenı́ lesů menšı́ velikosti, zhruba 10 stromů. Bagging dosahuje lehce horšı́ho výsledku. Je patrné, že lépe funguje při většı́ velikosti lesa. Tuto nevýhodu kompenzujı́ nižšı́ výpočetnı́ nároky oproti předchozı́ metodě. Podle očekávánı́ dopadla nejhůře metoda vytvářenı́ stromů nezávisle a na stále stejné trénovacı́ množině. K menšı́mu zlepšenı́ ale přesto docházı́. To ukazuje na možnost využitı́ evolučnı́ch algoritmů jako generátorů alternativnı́ch hypotéz“. Obrá” 46 KAPITOLA 4. EXPERIMENTY 1 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 Obrázek 4.4: Umělá data k experimentu v sekci 4.4 průměrná chyba klasifikace [%] 10 nezávisle tvořené stromy bagging odlišné kořeny 9 8 7 6 5 0 5 10 15 20 25 30 35 40 počet stromů v lese Obrázek 4.5: Srovnánı́ metod pro vytvářenı́ lesa na přesnosti klasifikace 47 KAPITOLA 4. EXPERIMENTY Počet třı́d Distribuce přı́kladů Trénovacı́ množina Testovacı́ množina Terminály Funkce Max. délka pravidla Velikost populace Max. generacı́ na pravidlo Zastavovacı́ podmı́nka Počet běhů 3 33%, 33%, 33% 800 200 T = {x, y, R} F = {+, −, ∗, sin, (> 0)} 5 300 50 S < 0, 9 ∨ r < 0, 1 20 Tabulka 4.6: Parametry experimentu v sekci 4.4 zek 4.6 názorně ukazuje rozdı́l mezi stromy s odlišnými kořenovými pravidly 4.6(a) a nezávisle vytvářenými stromy 4.6(b). Rozdělenı́ prostoru přı́znaků kořenovým pravidlem je znázorněno černou čarou. 4.5 Může les potlačit efekt přeučenı́? Indukce rozhodovacı́ho stromu se zastavuje, pokud se (zhruba řečeno) odstranı́ předem zadané množstvı́ neurčitosti z trénovacı́ množiny. Tak je možné vytvořit rozhodovacı́ stromy, které jsou méně či vı́ce adaptovány na data v trénovacı́ množině. Mı́ra adaptace se projevuje nı́zkou, resp. vysokou přesnostı́ klasifikace na trénovacı́ množině. Při nı́zkém stupni adaptace na trénovacı́ množinu strom dosahuje také nı́zké přesnosti klasifikace na testovacı́ množině. Zvyšovánı́m mı́ry adaptace na trénovacı́ množinu se nejprve dosáhne zlepšenı́ přesnosti na testovacı́ množině. Po přesaženı́ určité meze se však začne projevovat efekt přeučenı́ popsaný v sekci 3.5: Přesnost na testovacı́ množině klesá, i když přesnost na trénovacı́ množině dále roste. Optimálnı́ mı́ru adaptace stromu na data nenı́ snadné předem odhadnout. Ukazuje se [9], že klasifikace pomocı́ většinového hlasovánı́ v souboru klasifikátorů má schopnost přeučenı́ omezit. Experiment v této sekci se snažı́ ověřit tuto pozitivnı́ vlastnost u metody vytvářenı́ lesů navržené v sekci 3.6. Pro účely experimentu posloužila databáze pořı́zená pro diagnostiku cukrovky, která je blı́že popsána (pod označenı́m Pima) v následujı́cı́ sekci. Byla srovnána přesnost klasifikace stromů a lesů různě adaptovaných na data v trénovacı́ množině. Mı́ra adaptace byla kontrolována zastavovacı́ podmı́nkou S < c. K zastavenı́ růstu stromu v indukovaném uzlu tedy došlo, pokud zbytková entropie přı́slušné části trénovacı́ množiny klesla pod hod- 48 KAPITOLA 4. EXPERIMENTY (a) metoda odlišných kořenových pravidel (b) nezávisle vytvářené stromy Obrázek 4.6: stromy lesa při různých způsobech vytvářenı́ kořenů 49 KAPITOLA 4. EXPERIMENTY průměrná chyba klasifikace [%] 35 30 25 20 stromy, trénovací m. stromy, testovací m. lesy, testovací m. 15 10 5 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 c [bity/příklad] Obrázek 4.7: Efekt přeučenı́ pro stromy a lesy notu c. Výsledky experimentu ukazuje graf na obrázku 4.7. Plnou čarou je vyznačena průměrná chyba klasifikace stromů na trénovacı́ množině. Čárkovaně se značkami × je vyznačena průměrná chyba klasifikace na testovacı́ množině. Průběhy dokládajı́, že pro nı́zké hodnoty zbytkové entropie S docházı́ k přeučenı́. Optimálnı́ mez adaptace zřejmě ležı́ okolo hodnoty S = 0, 7 bitu/přı́klad. Čárkovaný průběh se značkami ∗ označuje průměrnou chybu klasifikace lesů o 11 stromech na testovacı́ množině. Krom menšı́ chyby klasifikace se projevuje menšı́ citlivost jak na přeučenı́, tak na nedoučenı́. Tato vlastnost je lépe vidět z grafu na obrázku 4.8. Graf ukazuje relativnı́ změnu chyby klasifikace vzhledem k nejlepšı́ dosažené hodnotě. U stromů je relativnı́ nárůst chyby klasifikace kvůli přeučenı́ přibližně dvojnásobný v porovnánı́ s lesy. Lesy vytvářené metodou navrženou v sekci 3.6 tedy majı́ schopnost potlačit efekt přeučenı́. 4.6 Srovnánı́ s jinými metodami klasifikace V této sekci je zdokumentováno srovnánı́ systému, co do přesnosti klasifikace, s jinými metodami. Srovnánı́ je provedeno na volně dostupných datech z oblasti lékařské diagnostiky. Tři ze čtyř použitých databázı́ pocházejı́ z archivu 50 KAPITOLA 4. EXPERIMENTY násobek min. průměrné chyby [-] 1.25 stromy lesy 1.2 1.15 1.1 1.05 1 0.95 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 c [bity/příklad] Obrázek 4.8: Citlivost na přeučenı́ u stromů a lesů Počet třı́d Distribuce přı́kladů Trénovacı́ množina Testovacı́ množina Terminály Funkce Max. délka pravidla Velikost populace Max. generacı́ na pravidlo Zastavovacı́ podmı́nka Počet běhů 2 65%, 35% 615 153 T = {x, y, R} F = {+, −, ∗, sin, (> 0)} 10 300 50 viz. popis v sekci 4.5 20 Tabulka 4.7: Parametry experimentu v sekci 4.5 0.9 KAPITOLA 4. EXPERIMENTY jméno Pima Heart Breast EKG 51 počet vzorků počet atributů počet třı́d zastoupenı́ třı́d 768 8 2 65% / 35% 920 13 2 44% / 56% 699 10 2 65% / 35% 82 4 2 22% / 78% Tabulka 4.8: Přehled použitých dat University of California, Irvine [2], kde je také možné zı́skat jejich podrobný popis. Poslednı́ soubor dat byl využit ve srovnávacı́ studii metod strojového učenı́ pro klasifikaci EKG signálů [16]. Základnı́ údaje o databázı́ch obsahuje tabulka 4.8. Zde následuje jejich stručný popis. Pima. Data byla pořı́zena za účelem diagnostiky cukrovky u Indiánů z oblasti Pima v Arizoně. Každý vzorek obsahuje 8 čı́selných přı́znaků osobnı́ch dat a výsledků lékařských testů. Vzorky jsou rozděleny do dvou třı́d: má cukrovku/zdravý. Heart. Tato databáze byla pořı́zeny za účelem diagnostiky nemoci věnčité tepny (u zdroje [2] blı́že nespecifikované). 13 přı́znaků popisuje osobnı́ data pacientů, jejich subjektivnı́ popis problémů a výsledky lékařských testů. Třı́dy jsou dvě: trpı́ nemocı́ / netrpı́ nemocı́. Breast. Databáze University of Wisconsin, určená pro diagnostiku rakoviny prsu. Obsahuje 10 přı́znaků, které představujı́ výsledky lékařských vyšetřenı́. Data jsou rozdělena do dvou třı́d: zhoubný nádor / nezhoubný nádor. EKG. Databáze byla použita pro diagnostiku srdečnı́ arytmie v [16]. Každý vzorek má čtyři čı́selné přı́znaky, které jsou výsledkem předzpracovánı́ záznamu EKG signálu vlnkovou transformacı́. Vzorky jsou rozděleny do dvou třı́d: arytmie/normálnı́ srdečnı́ rytmus. Pro účely testovánı́ byla každá databáze náhodným způsobem rozdělena na 10 stejně velkých částı́. Poté bylo vytvořeno 10 klasifikátorů, které byly učeny pokaždé na jiných 9 částech původnı́ databáze. Poslednı́ část byla použita pro testovánı́. Tento postup byl 6 krát zopakován, pokaždé s jiným náhodným rozdělenı́m databáze do částı́. Prezentované výsledky jsou průměrné hodnoty z 60 takto zı́skaných odhadů přesnosti klasifikace. Parametry systému při těchto experimentech shrnuje tabulka 4.10. Byly použity pouze standardnı́ předdefinované funkce a terminály, tak jak jsou popsány v sekci 3.3. KAPITOLA 4. EXPERIMENTY Pima 25,6 28,4 25,7 26,3 26,4 27,1 24,4 25,0 23,6 52 Heart Breast EKG metoda 20,0 fuzzy rozhodovacı́ stromy 22,2 C4.5 3,3 C4.5 + Adaboost.M2 4,8 OC1 5,9 fuzzy pravidla 14,8 4,5 GP pravidla 13,8 3,3 NN 19,0 See5 13,3 FURL 21,4 3,8 14,2 strom 18,7 3,1 17,1 les – 11 stromů Tabulka 4.9: srovnánı́ chyb klasifikace v % různých metod Přesnost klasifikace byla srovnána s několika algoritmy z poslednı́ doby, a to jak s přı́buznými, které využı́vajı́ evoluce, tak s odlišnými metodami. Tabulka 4.9 obsahuje výsledky srovnánı́. Nejlepšı́ dosažený výsledek pro každou databázi je vytištěn tučně. Poslednı́ dva řádky tabulky obsahujı́ výsledky této práce. Ve sloupci metoda je označenı́ použitých algoritmů. Jejich krátký popis následuje. Výsledky v tabulce pocházejı́ od autorů citovaných článků. Srovnánı́ je pouze orientačnı́, protože metodologie experimentů se u jednotlivých autorů lišı́. fuzzy rozhodovacı́ stromy Metoda indukce fuzzy rozhodovacı́ch stromů pomocı́ shlukovánı́ [7]. C4.5 Známý algoritmus J. R. Quinlana [22] pro indukci klasických rozhodovacı́ch stromů, které majı́ v uzlech testy tvaru xi ≤ c. Výsledky jsou převzaty z [7]. C4.5 + Adaboost.M2 Klasifikace pomocı́ (meta)alogritmu Adaboost [10], který využı́vá C4.5 jako klasifikátor. OC1 Algoritmus pro indukci rozhodovacı́ch stromů, které majı́ v uzlech lineárnı́ nerovnice tvaru a1 x1 + a2 x2 + ... + an xn ≤ c. Je známý pod názvem OC1. Výsledky jsou převzaty z článku [5]. fuzzy pravidla Expertnı́ systém založený na fuzzy pravidlech, která vyhledává pomocı́ genetického programovánı́ [1]. KAPITOLA 4. EXPERIMENTY 53 GP pravidla Pravidlový systém založený na genetickém programovánı́ [6]. (Hledá jedno klasifikačnı́ pravidlo typu IF-THEN, pro každou třı́du v databázi.) NN Neuronová sı́t’ (MLP) učená metodou zpětného šı́řenı́ [3]. See5 Algoritmus J. R. Quinlana pro indukci klasických rozhodovacı́ch stromů, nástupce algoritmu C4.5. Výsledky testů jsou převzaty z článku [16]. FURL Systém pro vyhledávánı́ fuzzy klasifikačnı́ch pravidel. Výsledky jsou převzaty z článku [16]. Výsledky ukazujı́, že systém navržený v této práci může konkurovat ostatnı́m algoritmům použitým pro srovnánı́. Zejména při použitı́ lesů, které významně zlepšujı́ přesnost klasifikace, i když jsou sestaveny z relativně malého počtu stromů. Při použitı́ lesů bylo dosaženo nejlepšı́ho výsledku mezi srovnávanými metodami u dvou ze čtyř databázı́. Zajı́mavý je výsledek u databáze EKG, kdy lesy dosahujı́ horšı́ přesnosti klasifikace než jednotlivé stromy. Přesnost klasifikace lesa je horšı́ než průměrná přesnost stromů, ze kterých je les složen. Následujı́cı́ odstavec se snažı́ objasnit, proč (a kdy) tento jev nastává. Necht’ je algoritmem vytvořena skupina n rozhodovacı́ch stromů. Skutečnost, že i-tý strom správně klasifikuje přı́klad e, necht’ se značı́ si (e) = 1. Pokud strom klasifikuje přı́klad e nesprávně, budiž si (e) = 0. Průměrná P hodnota n1 ni=1 si (e) je odhadem p̂(e) pravděpodobnosti p(e), že strom vytvořený algoritmem správně klasifikuje přı́klad e. Přesnost klasifikace stromů na testovacı́ množině se pak odhaduje průměrem hodnot p̂(e) všech přı́kladů v testovacı́ množině. (Ve srovnávacı́ tabulce 4.10 jsou právě takové odhady). Jaká je pravděpodobnost správné klasifikace přı́kladu e, pokud skupina stromů klasifikuje jako les? Aby les správně klasifikoval přı́klad e, musı́ e správně klasifikovat nadpolovičnı́ většina stromů v lese. Pravděpodobnost, že k stromů z n správně klasifikuje přı́klad e se řı́dı́ binomickým rozdělenı́m a jejı́ hodnota je ! n Pk (e) = p(e)k (1 − p(e))n−k . k Pravděpodobnost, že nadpolovičnı́ většina stromů v lese správně klasifikuje e je tedy ! n X n P (e) = p(e)k (1 − p(e))n−k . k i=⌈ k ⌉ 2 Platı́ P (e) < p(e) pro 0 < p(e) < 0, 5 a P (e) > p(e) pro 0, 5 < p(e) < 1. U přı́kladů, které stromy klasifikujı́ spı́še správně“, dosáhne les lepšı́ch vý” 54 KAPITOLA 4. EXPERIMENTY 0.4 3 stromy 11 stromů 33 stromů 99 stromů 0.3 P(e)-p(e) 0.2 0.1 0 -0.1 -0.2 -0.3 -0.4 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 p(e) Obrázek 4.9: Změna pravděpodobnosti správné klasifikace při použitı́ lesa oproti jednotlivému stromu. sledků než jednotlivé stromy. Naproti tomu u přı́kladů, které stromy klasifikujı́ většinou nesprávně, dojde použitı́m lesa ke zhoršenı́. Graf na obrázku 4.9 ukazuje přesněji, jak se změnı́ pravděpodobnost správné klasifikace přı́kladu při použitı́ lesa oproti použitı́ stromu. Na vodorovné ose je vynesena pravděpodobnost správné klasifikace přı́kladu stromem p(e). Na svislé ose je vynesen rozdı́l P (e) − p(e), tedy zlepšenı́ či zhoršenı́, kterého se dosáhne použitı́m lesa. (Na obrázku jsou průběhy pro lesy o 3, 11, 33 a 99 stromech.) Rozdı́l mezi přesnostı́ klasifikace stromů a lesa závisı́ na obtı́žnosti“ přı́” kladů v testovacı́ množině. Největšı́ho zlepšenı́ se dosahuje, pokud pravděpodobnost správné klasifikace většiny přı́kladů je lehce většı́ než 0, 5. Jsou-li přı́klady lehké“, tj. téměř každý strom je klasifikuje správně, k výraznému ” zlepšenı́ nemůže dojı́t. Těžké“ přı́klady způsobujı́ zhoršenı́ přesnosti. ” Někdy nastává zajı́mavá situace, kdy jednotlivé klasifikátory majı́ v průměru vysokou přesnost, ale použitı́ lesů přesto způsobuje zhoršenı́. Zdá se, že v tomto přı́padě obsahuje testovacı́ množina dvě skupiny přı́kladů. Většinu množiny tvořı́ lehké“ přı́klady, které způsobujı́ v průměru vysokou přesnost ” klasifikace jednotlivých stromů. Použitı́m lesa se u nich již nemůže výrazně zlepšit přesnost klasifikace. Druhou, malou skupinu tvořı́ těžké“, matoucı́ ” přı́klady, které stromy často zařazujı́ do nesprávné třı́dy. V průměru je pak malé zlepšenı́ na lehkých“ přı́kladech převáženo velkým zhoršenı́m vlivem ” 55 KAPITOLA 4. EXPERIMENTY Počet třı́d Distribuce přı́kladů Trénovacı́ množina Testovacı́ množina Terminály a funkce Max. délka pravidla Velikost populace Max. generacı́ na pravidlo Zastavovacı́ podmı́nka Počet běhů viz. tabulka 4.8 viz. tabulka 4.8 90% 10% viz. popis v sekci 4.6 12 500 100 S < 0, 65 ∨ r < 0, 05 60 Tabulka 4.10: Parametry experimentům v sekci 4.6 těžkých“ přı́kladů. Právě toto vysvětlenı́ se nabı́zı́ v přı́padě databáze EKG. ” Ta je velmi malá (obsahuje pouze 82 přı́kladů!) a tudı́ž je pravděpodobné, že některé typy“ přı́kladů jsou nedostatečně popsány a nenı́ možné na ně klasi” fikátor náležitě natrénovat“. Možným řešenı́m tohoto problému by bylo najı́t ” způsob, jak identifikovat těžké“ přı́klady a nepokoušet se o jejich klasifikaci. ” Kapitola 5 Závěr Byl vytvořen systém pro klasifikaci objektů popsaných čı́selnými i nečı́selnými přı́znaky. Systém vytvářı́ model objektů během procesu učenı́ z trénovacı́ množiny správně klasifikovaných přı́kladů. Tı́mto modelem a současně klasifikátorem je les, soubor rozhodovacı́ch stromů, které rozhodujı́ o třı́dě klasifikovaného objektu společně pomocı́ většinové volby. Výhody lesů oproti jednotlivým stromům spočı́vajı́ ve (většinou) vyššı́ přesnosti klasifikace, většı́ robustnosti a v omezenı́ efektu přeučenı́. Nevýhodou je většı́ složitost modelu. Pro vytvářenı́ lesů je možné využı́t univerzálnı́ho (meta) algoritmu, jako napřı́klad [4], [10]. Jinou možnostı́ je vytvořit speciálnı́ postup pro konkrétnı́ klasifikátor, viz. napřı́klad [20]. V této práci byl navržen postup tvořenı́ lesů, který se hodı́ pro rozhodovacı́ stromy a narozdı́l od univerzálnı́ metody [4] poskytuje významné zlepšenı́ přesnosti klasifikace už pro lesy malé velikosti. Je kompromisem mezi účinnými“ me” todami s velkou výpočetnı́ náročnostı́ a metodami jako [4], které spoléhajı́ na nestabilitu algoritmu učenı́. Jednotlivé rozhodovacı́ stromy lesa se v této práci indukujı́ obvyklým postupem shora dolů. Jedná se o hladový algoritmus, kterým nenı́ možné dosáhnout optimálnı́ (co nejjednoduššı́) struktury rozhodovacı́ho stromu. Některé jiné metody proto hledajı́ celé stromy najednou“ [7], [5]. Takové hledánı́ je ” ale časově náročnějšı́, což se nepřı́znivě projevı́ při řešenı́ složitějšı́ch úloh. Zlepšenı́ přitom nenı́ významné, zvláště v porovnánı́ s hladovými algoritmy, které použı́vajı́ kritéria založená na měřenı́ neurčitosti podle teorie informace [20]. V této práci se proto výpočetnı́ prostředky raději investujı́ do zlepšenı́ vyjadřovacı́ schopnosti rozhodovacı́ch stromů. Narozdı́l od nejběžnějšı́ch rozhodovacı́ch stromů, které v uzlech testujı́ jediný přı́znak se v této práci použı́vajı́ tzv. oblique trees, které majı́ v uzlech složitějšı́ testy neboli pravidla. Takové stromy majı́ lepšı́ vyjadřovacı́ schopnost, což se projevuje ve vyššı́ přesnosti klasifikace a v menšı́ velikosti stromů. 56 KAPITOLA 5. ZÁVĚR 57 Výhoda lepšı́ vyjadřovacı́ schopnosti s sebou nese nutnost prohledávat prostor přı́pustných pravidel, který je neúměrně většı́ než u stromů, které testujı́ jednotlivé přı́znaky. Nalezenı́ kvalitnı́ch pravidel je přitom zásadnı́ podmı́nkou pro zı́skánı́ kvalitnı́ch stromů, které přesnostı́ klasifikace předčı́ své protějšky s jednoduchými testy. Pro řešenı́ tohoto úkolu se použı́vá genetické programovánı́ – evolučnı́ algoritmus úspěšně využı́vaný pro řadu těžkých optimalizačnı́ch problémů [14]. Dı́ky způsobu reprezentace jedinců v genetickém programovánı́ je též jednoduché přizpůsobit vyjadřovacı́ schopnost pravidel řešené klasifikačnı́ úloze: Uživatel má možnost snadno definovat funkce a terminály genetického programovánı́, které jsou stavebnı́mi kameny“ pravidel v uz” lech rozhodovacı́ho stromu. Tı́m je možné využı́t přı́padnou apriornı́ znalost úlohy ke zmenšenı́ prohledávaného prostoru pravidel nebo k docı́lenı́ stavu, kdy pravidla snáze vyjádřı́ důležité vlastnosti dat. Užitečnost této vlastnosti systému bohužel nebyla hlouběji prozkoumána, zvláště na reálných datech. Důvodem byl nedostatek vhodných dat. Testovánı́ systému ukázalo dobrou přesnost klasifikace ve srovnánı́ s jinými současnými metodami. Projevily se také některé nevýhody. Hlavnı́ nevýhodou vyplývajı́cı́ z použitı́ evoluce je časová náročnost výpočtu, která je zhruba o tři řády vyššı́ než u klasických metod strojového učenı́. To limituje použitı́ systému na učenı́ z databázı́ menšı́ho rozsahu. Pro překonánı́ tohoto problému by bylo nutné velké databáze vzorkovat nebo vhodně předzpracovat. Dalšı́ potenciálnı́ nevýhoda spočı́vá v množstvı́ volitelných parametrů algoritmu, jejichž vliv může mı́t významný vliv na kvalitu výsledného klasifikátoru. Pro nezkušeného uživatele je to nevýhoda významná. Zdá se však, že je možné nalézt rozumné“ ” nastavenı́ většiny parametrů, při kterém je systém dostatečně robustnı́, tj. uspokojivě funguje na řadě úloh. Přı́kladem může být nastavenı́ parametrů použité při srovnávacı́ch testech v sekci 4.6. Předchozı́ shrnutı́ hodnotilo systém z pohledu, kdy je rozhodujı́cı́ přesnost klasifikace. Pro praktické využitı́ v lékařské diagnostice jsou podstatné ještě dalšı́ vlastnosti, kterými by stálo za to se zabývat. Přı́nosem by byla schopnost identifikace obtı́žně klasifikovatelných přı́kladů. Tak by bylo možné vyhnout se přı́liš riskantnı́m rozhodnutı́m a zvýšit spolehlivost klasifikace, která bývá v medicı́nských aplikacı́ch důležitá. Systém, který provádı́ automatickou klasifikaci má často podpůrnou funkci pro rozhodovánı́ člověka. Hodnotu systému v tomto přı́padě zvyšuje schopnost zdůvodnit“ své rozhodnutı́ člověku srozumitelným způsobem. To před” pokládá schopnost vytvořit model klasifikovaných dat ve srozumitelném a jednoduchém tvaru. U systému navrženého v této práci je možné dosáhnout jisté srozumitelnosti použitı́m vhodných terminálů a funkcı́. Jednoduché vyjádřenı́ ale systém obvykle neposkytuje. Lepšı́ vlastnosti majı́ v tomto směru systémy, které využı́vajı́ bázi klasifikačnı́ch pravidel bez hierarchické struktury KAPITOLA 5. ZÁVĚR 58 (např. [6], [1]). Jakéhosi kompromisu mezi takovými pravidlovými systémy a rozhodovacı́mi stromy se snad dalo dosáhnout vytvářenı́m rozhodovacı́ch stromů velmi malé hloubky a jejich kombinacı́ do lesa, ve kterém by každý strom představoval popis jiné podmnožiny třı́d. Pro univerzálnost systému byla testována též možnost jeho použitı́ k identifikaci potenciálně problémových společnostı́ při regulaci odběru tepla. Výsledky budou publikovány v článku přijatém na konferenci BASYS’2004 (6th IFIP International Conference on Information Technology for Balanced Automation Systems in Manufacturing and Service). Předpokládá se též dalšı́ využitı́ systému pro klasifikaci EKG signálů. Literatura [1] P. J. Bentley. Evolving fuzzy detectives: An investigation into the evolution of fuzzy rules. In Late Breaking Papers at the 1999 Genetic and Evolutionary Computation Conference, pages 38–47, Orlando, Florida, USA, 1999. [2] C. L. Blake and C. J. Merz. UCI repository of machine learning databases. http://www.ics.uci.edu/~mlearn/MLRepository.html, 1998. [3] M. Brameier and W. Banzhaf. A comparison of linear genetic programming and neural networks in medical data mining. IEEE Transactions on Evolutionary Computation, 5(1):17–26, February 2001. [4] L. Breiman. Bagging predictors. Machine Learning, 24(2):123–140, 1996. [5] E. Cantú-Paz and C. Kamath. Inducing oblique decision trees with evolutionary algorithms. IEEE Transactions on Evolutionary Computing, 7(1):56–68, 2003. [6] I. De Falco, A. Della Cioppa, and E. Tarantino. Discovering interesting classification rules with genetic programming. Applied Soft Computing, 1(4F):257–269, May 2001. [7] J. Eggermont. Evolving fuzzy decision trees with genetic programming and clustering. In Proceedings of the 4th European Conference on Genetic Programming, EuroGP 2002, volume 2278, pages 71–82, Kinsale, Ireland, 3-5 2002. Springer-Verlag. [8] E. Falkenauer. Applying genetic algorithms to real-world problems. In Evolutionary Algorithms, pages 65–88. Springer, New York, 1999. [9] Y. Freund, Y. Mansour, and R. E. Schapire. Why averaging classifiers can protect against overfitting. In Proceedings of the Eighth International Workshop on Artificial Intelligence and Statistics, 2001. 59 LITERATURA 60 [10] Y. Freund and R. E. Schapire. Experiments with a new boosting algorithm. In Proc. 13th International Conference on Machine Learning, pages 148–146. Morgan Kaufmann, 1996. [11] D. E. Goldberg. Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley, Reading, MA, 1989. [12] D. E. Goldberg and K. Deb. A comparative analysis of selection schemes used in genetic algorithms. In Foundations of genetic algorithms, pages 69–93. Morgan Kaufmann, San Mateo, CA, 1991. [13] J. H. Holland. Adaptation in Natural and Artificial Systems. University of Michigan Press, Ann Arbor, 1975. [14] J. R. Koza. Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge, MA, USA, 1992. [15] J. R. Koza. Genetic Programming II: Automatic Discovery of Reusable Programs. MIT Press, Cambridge Massachusetts, May 1994. [16] L. Lhotská and J. Macek. Klasifikace signálů ekg: srovnánı́ metody rozhodovacı́ch stromů a fuzzy pravidel. Kde to asi vyšlo..., 1(1):1–10, 2003. [17] V. Mařı́k, O. Štěpánková, J. Lažanský, et al. Umělá inteligence 3. Academia, 2001. [18] V. Mařı́k, O. Štěpánková, J. Lažanský, et al. Umělá inteligence 4. Academia, 2003. [19] D. J. Montana. Strongly typed genetic programming. BBN Technical Report #7866, Bolt Beranek and Newman, Inc., 10 Moulton Street, Cambridge, MA 02138, USA, 7 May 1993. [20] S. K. Murthy. Automatic construction of decision trees from data: A multi-disciplinary survey. Data Mining and Knowledge Discovery, 2(4):345–389, 1998. [21] J. R. Quinlan. Induction of decision trees. Machine Learning, 1(1):81– 106, 1986. [22] J. R. Quinlan. C4.5: programs for machine learning. Morgan Kaufmann Publishers Inc., 1993. LITERATURA 61 [23] M. I. Schlesinger and V. Hlaváč. Deset přednášek z teorie statistického a strukturnı́ho rozpoznávánı́. Vydavatelstvı́ ČVUT, Praha, 1999. [24] D. H. Wolpert and W. G. Macready. No free lunch theorems for search. Technical Report SFI-TR-95-02-010, Santa Fe, NM, 1995. Dodatek A Popis programu na přiloženém CD Systém popsaný v této práci je implementován v jazyce C++ s použitı́m pouze standardnı́ch knihoven jazyka. Dı́ky tomu by mělo být možné zdrojový kód přeložit na POSIX systému pouze za pomoci kompilátoru jazyka C++ a GNU Automake 1.4 nebo vyššı́ verze. Přiložené CD obsahuje zdrojový kód programu, který umožňuje vytvářet lesy ze zadaných dat, testovat přesnost jejich klasifikace a uložit podrobné výsledky ve formě snadno zpracovatelné v Matlabu. (Program neobsahuje uživatelské rozhranı́, nastavenı́ všech potřebných parametrů je nutno provést přı́mo ve zdrojovém kódu.) Zdrojový kód je rozdělen do několika modulů: gp V tomto modulu je implementováno genetické programovánı́ s typovánı́m jako třı́da GP. Dále jsou zde implementovány abstraktnı́ třı́dy, které realizujı́ funkce a terminály genetického programovánı́. Z těchto třı́d je možné jednoduše odvodit konkrétnı́ funkce a terminály genetického programovánı́. Funkčnı́ přı́klady je možné nalézt v modulu iguana. entropygp Tento modul definuje třı́du EntropyGP, která je odvozena z třı́dy GP. Třı́da EntropyGP již přı́mo sloužı́ k evoluci pravidel. classifier V tomto modulu je definována třı́da Classifier, která představuje rozhodovacı́ strom. K dispozici jsou metody pro vytvářenı́ a klasifikaci dat. trainset V tomto modulu jsou definovány třı́dy snadnou práci se vstupnı́mi daty programu. Pracuje se s daty uloženými v textovém souboru jednoduchého tvaru. 62 DODATEK A. POPIS PROGRAMU NA PŘILOŽENÉM CD 63 iguana Tento modul obsahuje hlavnı́ smyčku programu, který provádı́ experimenty skládajı́cı́ se z vytvářenı́ lesů, testovánı́ jejich přesnosti a uloženı́ výsledků. Dále se zde nastavujı́ parametry genetického programovánı́ a indukce rozhodovacı́ch stromů, včetně definice potřebných funkcı́ a terminálů. Výstupem programu je protokol o provedeném experimentu, klasifikace dat do třı́d provedená pomocı́ vytvořených klasifikátorů a vyjádřenı́ klasifikátorů ve formě snadno zpracovatelné v Matlabu. Pro vizualizaci klasifikátorů, které pracujı́ s daty popsanými pomocı́ dvou přı́znaků je též k dispozici vizualizačnı́ funkce classvis pro Matlab. Nacházı́ se v souboru classvis.m. Výstup vizualizačnı́ funkce vypadá např. jako obrázek 4.3.
Podobné dokumenty
Školní řád - Kostka škola
Vztahy studujících a zákonných zástupc s pedagogickými pracovníky školy
Support vector machine
Dvě možnosti vedou k různým řešenı́m. Obě jsou stejně přirozené,
ale druhá vede ke standardnı́m SVM, proto se jı́ budeme držet.
Opět můžeme vynechat podmı́nku na kβk, definovat C =
...
Metody Pocítacového Videní (MPV) - Machine learning
I trénovacı́ množina X obsahujı́cı́ N prvků je algoritmem
bootstrap aggregating rozdělena na T množin (počet
stromů), X(t)
I každá obsahuje N(t) prvků, přičemž N(t) ≤ N (pozn. vzorové...
Kapitola 1 Statistické modely tvaru a vzhledu
Statistické modely tvaru se využı́vajı́ k reprezentaci objektů v obrázcı́ch. Statistická
analýza se aplikuje na data reprezentujı́cı́ určitý tvar za účelem nalezenı́ a vytvořenı́ jeho
mo...
Adaptace v algoritmu diferenciáln´ı evoluce
Vývoj prvků populace a tedy vývoj populace probı́há s využitı́m evolučnı́ch
operátorů mutace, křı́ženı́ a výběru.
Přesněji, nejdřı́ve se vytvořı́ počátečnı́ generace P0 populace ...
stáhnout zde - Petr Korviny
1. do buňky B1 nenı́ třeba zadávat žádnou hodnotu, pouze informačně lze uvést o jaký druh
vstupnı́ho souboru se vlastně jedná, jestli je to soubor se vstupnı́mi daty (kriteriálnı́ matic...
Kruskaluv algoritmus - Seminární práce z predmetu Algoritmy
Je dán souvislý neorientovaný ohodnocený graf (G, ψ) s m vrcholy a n
hranami. Úkolem je nalézt minimálnı́ kostru. Očı́slujme hrany
h1 , h2 , . . . , hn ∈ E tak, aby
ψ(h1 ) ≤ ψ(h2 ) ≤ . . . ...