Vyuºití evolu£ních technik v léka°°ské diagnostice

Transkript

Vyuºití evolu£ních technik v léka°°ské diagnostice
Č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

Školní řád - Kostka škola Vztahy studujících a zákonných zástupc s pedagogickými pracovníky školy

Více

Support vector machine

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 = ...

Více

Metody Pocítacového Videní (MPV) - Machine learning

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é...

Více

Kapitola 1 Statistické modely tvaru a vzhledu

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...

Více

Adaptace v algoritmu diferenciáln´ı evoluce

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 ...

Více

stáhnout zde - Petr Korviny

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...

Více

Kruskaluv algoritmus - Seminární práce z predmetu Algoritmy

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 ) ≤ . . . ...

Více