5.3 Rozhodovací pravidla

Transkript

5.3 Rozhodovací pravidla
5.3
Rozhodovací pravidla
Zatímco asociační pravidla hledala zajímavé souvislosti mezi hodnotami různých atributů a jejich
kombinací, rozhodovací pravidla se používají stejně jako rozhodovací stromy; pro klasifikaci. Syntaxe
pravidla je tedy
IF Ant THEN Class
kde Ant (předpoklad) je kombinace vytvořená z kategorií vstupních atributů a Class je zařazení
příkladu do třídy, tedy nějaká kategorie C(vt) cílového atributu C.
Budeme se tedy opět zabývat algoritmy učení s učitelem, kde cílem je naučit se zařazovat příklady do
různých tříd. Jeden algoritmus pro tvorbu rozhodovacích pravidel už známe, vytvoření pravidel
z rozhodovacího stromu. Jiné možnosti vytváření pravidel si ukážeme v této kapitole.
5.3.1
Pokrývání množin
Podobné jméno, jako má Ross Quinlan v souvislosti s rozhodovacímí stromy, má Ryzsard Michalski
v souvislosti s rozhodovacími pravidly, přesněji s algoritmem pokrývání množin (set covering
algorithm), známým jako AQ [Michalski, 1969] 1. Zatímco TDIDT algoritmus pro tvorbu
rozhodovacích stromů bývá nazýván algoritmus rozděl a panuj (divide and conquer), algoritmus
pokrývání množin bývá nazýván odděl a panuj (separate and conquer). Při pokrývání množin jde totiž
o to nalézt pravidla (konzistentní hypotézy), které pokrývají2 nějaké příklady hledaného konceptu a
tyto příklady oddělit od jiných příkladů téhož konceptu i od příkladů třídy jiné. V prostoru atributů se
tedy postupně vybírají oblasti, které obsahují příklady pouze jedné třídy. Nalezené oblasti mají,
podobně jako v případě rozhodovacích stromů, podobu mnohorozměrných hranolů rovnoběžných
s osami. Rozhodovací pravidla tedy mají stejnou vyjadřovací sílu jako rozhodovací stromy (Obr. 1).
Obr. 1 Vyjadřovací síla rozhodovacích pravidel
1
Postupně vznikla celá řada těchto algoritmů rozlišovaných číslem, tedy např. AQ15. Michalski je rovněž autorem myšlenky
paprskového prohledávání za využití konceptu hvězda (star), které používá např. CN2 a CN4.
2
Pravidlo pokrývá příklad, pokud příklad vyhovuje předpokladu pravidla.
1
Základní podobu algoritmu pokrývání množin pro dvě třídy ukazuje Obr. 2. Uvedený algoritmus bude
opět fungovat pouze pro kategoriální data (příklady popisujeme jako kombinaci hodnot atributů), která
nejsou zatížena šumem ( hledáme pravidla pokrývající příklady pouze jedné třídy).
Algoritmus pokrývání množin
1. najdi pravidlo, které pokrývá nějaké pozitivní příklady a žádný
negativní,
2. odstraň pokryté příklady z trénovací množiny DTR,
3. pokud v DTR zbývají nějaké nepokryté pozitivní příklady, vrať se k
bodu 1, jinak skonči.
Obr. 2 Algoritmus pokrývání množin
Rozšíření algoritmu pro více tříd se obvykle3 provede tak, že pro každou třídu C(vt) se data rozdělí na
příklady této třídy
{C(+)} = {o i : y i = v t } = D +TR
a protipříklady této třídy
{C(-)} = {o i : y i ≠ v t } = D -TR .
Rozšíření algoritmu pro práci s daty zatíženými šumem spočívá v tom, že v kroku 1 nepožadujeme,
aby pravidlo pokrývalo příklady pouze jedné třídy4. Numerické atributy je opět třeba diskretizovat
(„uvnitř“ algoritmu pro tvorbu pravidel nebo ve fázi přípravy dat).
Klíčovým bodem algoritmu pokrývání množin je krok 1; nalezení jednoho pravidla. Zatímco
algoritmus TDIDT postupoval v prostoru hypotéz „shora dolů“, při pokrývání množin najdeme obě
varianty postupu: „zdola nahoru“5 (tedy metodu generalizace – odstraňování kategorie z kombinace) i
„shora dolů“6 (metodou specializace – přidávání kategorie do kombinace).
Uveďme nejprve postup zdola nahoru, který odpovídá algoritmům AQ. Počáteční hypotéza pokrývající
jeden pozitivní příklad, se postupně zobecňuje tak, aby pokrývala více pozitivních příkladů a žádný
negativní příklad7. Krok 1 z algoritmu na Obr. 2 bude tedy mít podobu:
1. vezmi jeden pozitivní příklad jako jádro (seed),
2. najdi jeho generalizaci, která pokrývá nějaké pozitivní příklady a žádný negativní.
3
Jinou možností je vytvářet pravidla ke všem třídám současně. Tak postupuje algoritmus CN2/CN4 v modifikaci pro tvorbu
rozhodovacích seznamů a algoritmus ESOD, které jsou popsány v dalších částech této kapitoly.
4
Připomeňme, že v případě rozhodovacích stromů byl tento problém řešen analogickým způsobem a sice tak, že jsme
nepožadovali aby v listovém uzlu stromu byly příklady pouze jedné třídy.
5
Tento postup bývá rovněž nazýván postup řízený daty (data driven).
6
7
Tento postup bývá rovněž nazýván postup generování a testování (generate and test). Generování zde znamená
prohledávání prostoru možných pravidel.
Tento postup jsme již viděli u algoritmu FindS, který je popsán v kapitole o strojovém učení.
2
Vezměme si k ruce opět naše známá data (Obr. 3). Budeme-li při volbě příkladů v kroku 1 postupovat
sekvenčně8, bude hledání pravidel vypadat takto: V prvním kroku vybereme příklad k1 popsaný
kombinací
příjem(vysoký) ∧ konto(vysoké) ∧ pohlaví(žena) ∧ nezaměstnaný(ne).
Tuto kombinaci postupně zobecňujeme v sekvenci (v závorce jsou uvedeny pokryté příklady):
příjem(vysoký) ∧ konto(vysoké) ∧ pohlaví(žena) ∧ nezaměstnaný(ne) (k1)
příjem(vysoký) ∧ konto(vysoké) ∧
nezaměstnaný(ne) (k1, k2)
konto(vysoké)
(k1, k2, k4, k5).
Výsledná kombinace konto(vysoké) pokrývá pozitivní příklady k1, k2, k4 a k5 třídy úvěr(ano). Tyto
příklady odstraníme z trénovací množiny a pokračujeme příkladem k7 pokrytým kombinací
příjem(vysoký) ∧ konto(nízké) ∧ pohlaví(muž) ∧ nezaměstnaný(ne).
Tuto kombinaci postupně zobecníme 9 na kombinaci
příjem(vysoký),
která pokrývá příklady k7, k8 a k10.
Zbývá příklad k12 popsaný kombinací
příjem(nízký) ∧ konto(střední) ∧ pohlaví(muž) ∧ nezaměstnaný(ne).
Jedná se o poslední pozitivní příklad v trénovacích datech. Při zobecňování tohoto příkladu nám
pomohou negativní příklady; nalezená kombinace nesmí pokrývat žádný z nich. Tento požadavek
splňuje kombinace
konto(střední) ∧ nezaměstnaný(ne).
klient
k1
k2
k3
k4
k5
k6
k7
k8
k9
k10
k11
k12
příjem
vysoký
vysoký
nízký
nízký
nízký
nízký
vysoký
vysoký
nízký
vysoký
nízký
nízký
konto
vysoké
vysoké
nízké
vysoké
vysoké
nízké
nízké
nízké
střední
střední
střední
střední
pohlaví
žena
muž
muž
žena
muž
žena
muž
žena
muž
žena
žena
muž
Nezaměstnaný
ne
ne
ne
ano
ano
ano
ne
ano
ano
ne
ano
ne
úvěr
ano
ano
ne
ano
ano
ne
ano
ano
ne
ano
ne
ano
Obr. 3 Data pro tvorbu rozhodovacích pravidel
8
Při výběru jak jádra, tak příkladů pokrytých generalizací jádra bude hrát roli pořadí příkladů v trénovacích datech. Volba
příkladu tedy může ovlivnit výslednou podobu pravidel.
9
Budeme-li procházet klienty postupně, pak zobecňujeme v sekvenci příjem(vysoký) ∧ konto(nízké) ∧ pohlaví(muž) ∧
nezaměstnaný(ne) (k7) → příjem(vysoký) ∧ konto(nízké) (k7, k8) → příjem(vysoký) (k7, k8, k10).
3
Pravidla nalezená algoritmem tedy budou10:
IF konto(vysoké)
THEN úvěr(ano)
IF příjem(vysoký)
THEN úvěr(ano)
IF konto(střední) ∧ nezaměstnaný(ne)
THEN úvěr(ano).
Použití rozhodovacích pravidel pro klasifikaci nových příkladů je velice prosté. Postupně procházíme
soubor pravidel až nalezneme pravidlo, které lze použít. Závěr pravidla pak určí třídu, do které máme
uvažovaný příklad zařadit.
V následující podkapitole si ukážeme postup vytváření pravidel metodou specializace – tedy
přidáváním kategorií do kombinace tvořící předpoklad pravidla. Pro generování předpokladů pravidel
můžeme použít různé metody prohledávání prostoru kombinací. Nejpoužívanějšími způsoby pro
nalezení jednoho pravidla (v souvislosti s algoritmem pokrývání množin) je gradientní prohledávání a
svazkové prohledávání. V prvním případě se jedná o prohledávání do hloubky bez navracení:
v každém kroku se vybere ta „nejlepší“ kategorie která specializuje předpoklad pravidla (kritéria
kvality pravidel rovněž uvidíme v následujíci podkapitole). Ve druhém případě se paralelně sleduje
předem daný počet nejvhodnějších „kandidátů“ na to býti předpokladem pravidla: v každém kroku se
pak přidá nejlepší kategorie ke každému potenciálnímu předpokladu a výsledná množina (starých a
nových kandidátů) se opět redukuje na požadovaný počet těch nejlepších.
5.3.2
Rozhodovací seznam
Soubor IF-THEN pravidel, tak jak jsme ho poznali v předcházející podkapitole, bývá někdy nazýván
„neuspořádaný“ soubor pravidel. Opakem je „uspořádaný“ soubor pravidel, neboli rozhodovací
seznam (decision list). V tomto druhém případě se jedná o strukturu typu
IF Ant1 THEN Classi,
ELSE IF Ant2 THEN Classj
ELSE IF Ant3 THEN Classk
. . .,
kde v závěrech THEN se mohou objevovat různé třídy. Uspořádání zde spočívá v tom, že v každé
podmínce ELSE IF se implicitně skrývá negace všech podmínek předcházejících pravidel. Nelze tedy
již pravidla chápat jako navzájem nezávislá.
Příkladem systému, který vytváří jak rozhodovací pravidla (čti neuspořádaný soubor pravidel), tak
rozhodovací seznamy (čti uspořádaný soubor pravidel) je CN2 [Clark, Nibblet, 1989], resp. jeho
rozšíření CN4 [Bruha, Kočková, 1994] 11. Opět se jedná o algoritmus pokrývání množin (pokryté
příklady se odstraňují z trénovacích dat), postupuje se ale metodou specializace, tedy „shora dolů“.
Jádrem algoritmu (který odpovídá kroku 1 v obecném schématu algoritmu pokrývání množin) je
funkce Search(Ant,DTR) hledající jedno pravidlo. Podoba této funkce je uvedena na Obr. 4. Algoritmus
10
Můžeme pozorovat značnou shodu s pravidly, vytvořenými z rozhodovacího stromu v jedné z předcházejících kapitol.
11
Tato verze nabízí řadu zlepšení ve srovnání s původním algoritmem: ošetření chybějících hodnot, cena vyhodnocování
atributu, práce s numerickými atributy.
4
hledá pravidlo, které pokrývá velký počet objektů třídy Class a malý počet objektů ostatních tříd.
Tvorba pravidel končí když už se nepodaří nalézt vyhovující pravidlo. Specializace pravidla se
provádí přidáním kategorie ke kombinaci tvořící předpoklad pravidla12. Potenciální předpoklady se
uchovávají v množině Star. Velikost této množiny určuje šířku paprsku pro paprskové prohledávání.
Nejlepší pravidlo (krok 4.2.2 algoritmu) se hledá na základě negativní entropie
T
F(Ant) =
∑
nt(Ant)
nt(Ant)
n(Ant) × log2 n(Ant) ,
t=1
na základě Laplaceova odhadu očekávané spolehlivosti pravidla 13
nt(Ant) + 1
F(Ant) = n(Ant) + T ,
nebo na základě m-odhadu (m-prob)
nt(Ant) + m∗ft
F(Ant) = n(Ant) + m ,
kde T je počet tříd, nt(Ant) je počet příkladů třídy t pokrytých pravidlem, n(Ant) je počet všech
příkladů pokrytých pravidlem, ft = nt/n je relativní četnost třídy t a m je parametr.
Ve všech těchto případech vyšší hodnota znamená lepší pravidlo.
funkce Search(Ant,DTR)
1. nechť Star je množina obsahující prázdnou kombinaci [ ]
2. nechť Ant je prázdná kombinace
3. nechť Sel je množina všech kategorií A(v) vyskytujících se v DTR
4. dokud Star je prázdné nebo dokud nebyly testovány všechny kategorie A(v) v Sel
4.1. nechť NewStar je prázdné
4.2. pro každou kombinaci Comb ∈ Star
4.2.1. proveď specializaci přidáním kategorie A(v) ze Sel
4.2.2. vyhodnoť kvalitu kombinace CombA = Comb ∧ A(v) pomocí funkce
F(CombA)
4.2.3. zařaď kombinaci CombA do NewStar
4.3. pro každou kombinaci Comb ∈ NewStar
4.3.1. pokud Comb je (signifikantně) lepší než Ant, přiřaď Ant := Comb
4.4. pokud počet kombinací v NewStar překročí zadaný práh, vyhoď nejhorší kombinaci
4.5. přiřaď Star := NewStar
Obr. 4 Funkce “najdi jedno pravidlo” v algoritmu CN4
Hlavní cyklus algoritmu se liší podle toho, jestli vytváříme uspořádaná nebo neuspořádaná pravidla. V
případě neuspořádaných pravidel systém hledá pravidla pro jednotlivé třídy odděleně. Pro každou
třídu se projde celá trénovací množina DTR s tím, že pozitivní příklady tvoří vždy příklady jedné třídy
12
V původním algoritmu se používá termín selektor (selector) pro kategorii a termín komplex (complex) pro kombinaci.
13
Oproti běžně používané spolehlivosti (platnosti) pravidla bere Laplaceova korekce do úvahy počet tříd T.
5
a negativní příklady tvoří příklady ostatních tříd (podobu hlavního cyklu algoritmu ukazuje Obr. 5).
Tak se může stát, že se k jednomu příkladu naleznou pravidla, která by jej řadila k různým třídám.
Tento spor lze řešit hlasování aplikovatelných pravidel.
Algoritmus CN4 – rozhodovací pravidla
1. nechť ListOfRules je prázdný seznam
2. pro každou třídu C(vt), t=1,..,T
2.1. dokud množina pozitivních příkladů této třídy DTRt není prázdná
2.1.1. pomocí funkce Search(Ant,DTRt) nalezni nejlepší kombinaci Ant
2.1.2. přiřaď DTRt := DTRt – DTRt(Ant), kde DTRt(Ant) jsou příklady pokryté
kombinací Ant
2.1.3. do ListOfRules přidej pravidlo IF Ant THEN C(vt)
Obr. 5 Hlavní cyklus algoritmu CN4 pro neuspořádaná pravidla
V případě uspořádaných pravidel (rozhodovacího seznamu) se hledají pravidla ke všem třídám
najednou. DTR tedy odpovídá trénovací množině v nezměněně podobě. Třída predikovaná každým
pravidlem odpovídá třídě, do které patří většina pokrytých příkladů. Při klasifikaci ke sporům nemůže
dojít, protože pravidla mají přidělena pořadí použití.
Algoritmus CN4 – rozhodovací seznam
1. nechť ListOfRules je prázdný seznam
2. dokud trénovací množina DTR není prázdná
2.1. pomocí funkce Search(Ant,DTR) nalezni nejlepší kombinaci Ant
2.2. přiřaď DTR := DTR – DTR(Ant), kde DTR(Ant) jsou příklady pokryté kombinací
Ant
2.3. do ListOfRules přidej pravidlo IF Ant THEN Class, kde Class je majoritní třída
příkladů v DTR(Ant)
Obr. 6 Hlavní cyklus algoritmu CN4 pro uspořádaná pravidla
if příjem=vysoký then class is ano;
Kr=[ 5 0]; signif=5.850; quality=0.925; cost=1
if konto=vysoké then class is ano;
Kr=[ 4 0]; signif=4.680; quality=0.900; cost=1
if příjem=nízký && konto=nízké then class is ne;
Kr=[ 0 2]; signif=6.340; quality=0.900; cost=2
if konto=střední && nezaměstnaný=ano then class is ne;
Kr=[ 0 2]; signif=6.340; quality=0.900; cost=2
if konto=střední && nezaměstnaný=ne then class is ano;
Kr=[ 2 0]; signif=2.340; quality=0.850; cost=2
if true then class is ano;
Kr=[ 8 4]; signif=0.000; quality=0.733; cost=0
Obr. 7 CN4, neuspořádaná pravidla
6
if příjem=vysoký then class is ano;
Kr=[ 5 0]; signif=5.850; quality=0.925; cost=1
else if konto=vysoké then class is ano;
Kr=[ 2 0]; signif=2.340; quality=0.850; cost=1
else if nezaměstnaný=ano then class is ne;
Kr=[ 0 3]; signif=9.510; quality=0.950; cost=1
else if konto=střední then class is ano;
Kr=[ 1 0]; signif=1.170; quality=0.825; cost=0
else if true then class is ne;
Kr=[ 0 1]; signif=3.170; quality=0.850; cost=0
Obr. 8 CN4, uspořádaná pravidla
Pro data z Obr. 3 vytvoří CN4 soubor neuspořádaných pravidel uvedený na Obr. 7 a soubor
uspořádaných pravidel uvedený na Obr. 8 (jde o autentické výstupy z programu). Na těchto výstupech
si můžeme všimnout, že pro naše data odpovídají neuspořádaná pravidla pravidlům vytvořeným
„simulací“ algoritmu AQ (viz předcházející podkapitola) a uspořádaná pravidla odpovídají pravidlům
vytvořeným z rozhodovacího stromu (viz příslušná kapitola).
Numerické charakteristiky každého pravidla jsou:
•
Kr: pro jednotlivé třídy počet příkladů pokrytých pravidlem, tedy četnosti nt(Ant),
•
signif: kritérium pro výběr předpokladu pravidla:
T
signif =
∑ n (Ant) ×
t
t=1
⎛ n (Ant) n ⎞
log 2 ⎜ t
⎟,
⎝ n(Ant) n t ⎠
kde T je počet tříd, nt je počet příkladů třídy t a n je počet všech příkladů (v trénovacích datech),
•
quality: hodnocení založené na počtu příkladů (majoritní) třídy pokrytých a nepokrytých daným
pravidlem:
ntm(Ant)
ntm(Ant)
quality = 0.8 n(Ant) + 0.2
ntm ,
kde tm je majoritní třída,
•
cost: cena vyhodnocení pravidla, standardně počet dotazů v předpokladu.
Poslední pravidlo (to s předpokladem true) je implicitní pravidlo, které odpovídá majoritní třídě v
trénovacích datech. Toto pravidlo se při klasifikaci uplatní, pokud selhala všechna ostatní.
7
5.3.3
Pravděpodobnostní pravidla
Doposud uvedené příklady algoritmů hledaly pravidla tvořená pouze předpokladem a závěrem.
Existují ale i algoritmy, které pravidlům přiřadí nějakou hodnotu (pravděpodobnost, váhu). Tato
hodnota je použitelná v průběhu klasifikace při posuzování nových příkladů způsobem, který je blízký
tzv. expertním systémům14. V následující podkapitole podrobně popíšeme algoritmus ESOD, výsledek
výzkumu kolektivu autorů z VŠE v Praze, zde se podíváme na tzv. pravděpodobnostní pravidla
vytvářená systémem ITRule [Goodman, Smyth, 1989].
Pravidla vytvářená systémem ITRule mají tvar
IF Ant THEN Suc (p),
kde Ant je kombinace kategorií, Suc je jedna kategorie a p je podmíněná pravděpodobnost cíle,
a
nastane-li předpoklad, tedy hodnota a + b počítaná ze čtyřpolní tabulky.
Jednotlivá pravidla jsou vyhodnocována na základě vzájemné informace, kterou autoři systému
nazývají j-míra. Pro pravidlo
IF Ant THEN Suc
je vzájemná informace (j-míra) definována jako
j(Suc,Ant) = P(Suc|Ant)×log2
P(¬Suc|Ant)
( P(Suc|Ant)
P(Suc) ) + P(¬Suc|Ant)×log ( P(¬Suc) ),
2
kde pravděpodobnosti se opět odhadují jako relativní četnosti v trénovacích datech. První člen součtu
se týká podmíněné pravděpodobnosti toho, že platí závěr, pokud víme, že platí předpoklad, druhý člen
součtu se týká podmíněné pravděpodobnosti toho, že závěr neplatí, pokud víme, že platí předpoklad.
Tato hodnota umožní stanovit průměrný informační obsah pravidla
Javg(Suc,Ant) = p(Ant) × j(Suc,Ant),
Algoritmus ITRule postupuje jak metodou generalizace (ubírání podmínek v předpokladu pravidla),
tak metodou specializace (přidávání podmínek do předpokladu pravidla). Jako kritérium pro zařazení
pravidla slouží právě hodnota Javg. Báze pravidel je předem daným počtem pravidel s nejvyšším Javg.
Zvláštností algoritmu je, že atributy ze závěru pravidla se mohou objevit v předpokladech jiných
pravidel. Není zde tedy striktně stanoven jeden „cílový“ atribut, tak jak je tomu u ostatních algoritmů.
ITRule hledá pravidla k hodnotám všech atributů.
Bázi pravidel vytvořenou algoritmem lze použít v řadě expertních systémů. Pravidla jsou použitelná
jak pro přímé řetězení, tak pro zpětné řetězení pravidel15. Práce s neurčitostí je založena na
bayesovském přístupu.
14
Expertní systémy jsou počítačové programy, které se na základě vhodně zakódovaných znalostí z nějaké speciální oblasti
snaží dosáhnout kvality rozhodování srovnatelné s lidským expertem. Vhodné oblasti pro nasazení expertních systémů
jsou např. lékařská nebo technická diagnostika, posuzování bonity klienta banky, navrhování konfigurací počítačů apod.
Podstatné je, že v expertních systémech jsou uloženy vysoce specializované znalosti získané od expertů v dané oblast.
Vzhledem k tomu, že jsou tyto znalosti často reprezentovány v podobě pravidel, zkoumá se možnost jak tato pravidla
získávat automatizovaně, z dat.
15
V expertních systémech se používají dva základní způsoby odvozování. Při přímém řetězení se použijí pravidla, která lze
přímo aplikovat na daný příklad, při zpětném řetězení se ke zvolenému cíli nejprve naleznou všechna aplikovatelná
pravidla a ta se pak použijí.
8
5.3.4
Algoritmus ESOD
Úlohy kombinační analýzy dat popsané v předcházející podkapitole umožňují nalézat vztahy
(implikace a dvojité implikace), které jsou podporovány danými daty. Tak např. při analýze příčin
jsme hledali podmínky, za kterých nějaký objekt patří do třídy Class. Každý takový vztah můžeme
považovat za (objevenou) znalost. Tyto znalosti pak můžeme pak dále zkoumat a interpretovat.
Problém je ale v tom, že takovýchto vztahů je obvykle značné množství a že nemáme zatím v ruce
prostředek, jak tyto znalosti použít v případě, že máme rozhodnout o novém objektu, zda patří do
uvažované třídy. Celkem logicky se tedy naskýtá otázka, zda je možné nalézt v souboru generovaných
vztahů takové vztahy, které jsou důležitější než ostatní, a zda je možné tyto vztahy použít pro
automatickou klasifikaci nových objektů. Kladnou odpověď na tuto otázku dává algoritmus ESOD.
Základní myšlenkou algoritmu je vybrat z implikací nalezených při analýze příčin pravidla do báze
znalostí expertního systému ([Ivánek, Stejskal, 1988]).V této podkapitole tedy budeme uvažovat o
vybudování expertního systému, jehož znalosti by se automaticky získávaly z dat16.
Při formulaci této úlohy musíme rozhodnout o
•
podobě báze znalostí,
•
podobě inferenčního mechanismu,
•
způsobu, jak v souboru vztahů nalézt znalosti.
Začněme nejprve variantou systému pro situaci, kdy trénovací data DTR jsou rozdělena na příklady a
protipříklady nějakého konceptu17.
Báze znalostí je vytvářena v podobě souboru pravidel tvořených vztahy implikace k zadané cílové
kombinaci. Vztahy jsou opatřeny váhou která vyjadřuje neurčitost ve znalostech. Pravidla v bázi
znalostí tedy mají podobu 18
Ant ⇒ Class (w),
kde
Ant je kombinace kategorií vstupních atributů,
Class je kombinace definující pozitivní příklady (tedy Class = C(+)),
w z intervalu [0,1] je váha vyjadřující neurčitost pravidla.
Inferenční mechanismus budovaného systému pracuje metodou přímého řetězení. V průběhu
konzultace se pro nový objekt popsaný hodnotami vstupních atributů (popis objektu nemusí být
úplný!) naleznou všechna aplikovatelná pravidla. Příspěvky těchto pravidel19 se složí pomocí
kombinační funkce ⊕ a tak se naleznou výsledné váhy všech cílů. Jako kombinační funkce se používá
16
Tato myšlenka zdůvodňuje název algoritmu: Expertní Systém z Observačních Dat.
17
Algoritmus ESOD prošel podobným vývojem jako algoritmy „rozděl a panuj“ nebo „odděl a panuj“. První verze algoritmu
([Ivánek, Stejskal, 1988]) předpokládala pouze kategoriální data a dvě třídy. Umožňovala ale zpracovávat data zatížená
šumem. Později byl algoritmus ESOD rozšířen pro více tříd (to bude popsáno vzápětí) a doplněn o algoritmus diskretizace
numerických atributů (tento algoritmus je uveden v kapitole věnované předzpracování dat.
18
Ve srovnání s „klasickými“ expertními systémy, jejichž báze znalostí mívá bohatší strukturu má báze znalostí vytvořená
z dat podobu tzv. „trávy“, tedy pravidel pouze od dotazů přímo k cílům. Symbol ⇒ naznačuje, že pravidlo má podobu
implikace z kombinační analýzy dat.
19
Předpokládáme, že předpoklad aktivovaného pravidla platí s jistotou; přípěvek pravidla se tedy rovná váze pravidla.
9
pseudobayesovské skládání vah známé z expertního systému PROSPECTOR20 [Duda, Gasching,
1979]. Jsou-li w1, w2 váhy dvou pravidel, spočítá se jejich kombinace w⊕ jako:
w1 ⊕ w2 =
w1 × w2
w1 × w2 + (1 - w1) × (1 - w2)
Při tvorbě báze pravidel se vlastně provádí postupné zpřesňování a zjemňování již existujících znalostí
(knowledge refinement). Bázi pravidel vytváříme „shora dolů“ postupným přidáváním nových
(speciálnějších) pravidel ve chvíli, kdy báze přestane být konsistentní s trénovacími daty
reprezentovanými souborem všech implikací k zadanému cíli. Na počátku obsahuje báze pravidel tzv.
prázdný vztah, který odpovídá rozdělení tříd v trénovacích datech. Do báze pravidel se pak postupně
zařazují jen ty implikace, které nejsou odvoditelné z již získaných kratších pravidel.
Vztah implikace Ant ⇒ Class považujeme v daných datech za odvoditelný z nějaké množiny KB
pravidel se závěrem Class, jestliže v datech nezamítneme (na zvolené hladině významnosti)
hypotézu, že platnost21 této implikace
P(Class|Ant) =
n(Ant ∧ Class)
n(Ant)
odpovídá tzv. naskládané váze w⊕(Ant) získané složením vah těch pravidel z KB, jejichž levá strana je
podkombinací kombinace Ant.
Pro testování této hypotézy se používá χ2 test dobré shody. Tento test je již zmíněn v kapitole
věnované statistice jakožto test umožňující testovat nezávislost dvou veličin na základě porovnání
očekávaných a skutečných četností. V podobném duchu je χ2 test použit i zde.
V případě, že Class definuje pouze pozitivní příklady (tedy Class = C(+)) uvažujeme test pro dvě třídy
(tedy T=2). Do testu vstupují implikace Ant ⇒ Class (označme Ant ⇒ Class1), a Ant ⇒ ¬Class
(označme Ant ⇒ Class2) a naskládané váhy w⊕(Ant) (označme w1⊕(Ant)) a 1- w⊕(Ant) (označme
w2⊕(Ant)). Testem porovnáváme hodnoty skutečných četností nt(Ant) nalezených pro implikace Ant ⇒
Classt v trénovacích datech a četností očekávaných, spočítaných jako n(Ant) × wt⊕(Ant), kde wt⊕(Ant)
jsou váhy tříd Classt odvozené při konzultaci pro příklad popsaný kombinací Ant. Pro T tříd tedy
spočítáme hodnotu
T
χ2
=
∑
(nt(Ant) − n(Ant) × wt⊕(Ant))2
n(Ant) × wt⊕(Ant)
=
t=1
T
=
∑
t=1
T
T
nt(Ant) × nt(Ant)
− 2 ∑ nt(Ant) + n(Ant) ∑ wt⊕(Ant) =
⊕
n(Ant) × wt (Ant)
t=1
t=1
20
Tato operace se použije s ohledem na syntaktické závislosti mezi pravidly tak, jak to navrhl Hájek [Hájek, 1985].
21
Abychom se při výpočtu vyhnuli problémům s extremálními hodnotami platnosti implikace, provádíme následující
korekce:
• je-li P(Class|Ant)=0, položíme P(Class|Ant)=0.5/n(Ant),
• je-li P(Class|Ant)=1, položíme P(Class|Ant)=(n(Ant)-0.5)/n(Ant),
Tato korekce má podobný význam jako Laplaceova korekce použitá v případě systému CN4; zabránit tomu, aby
podmíněná pravděpodobnost závěru při platnosti předpokladu nabývala hodnoty 0 nebo 1.
10
T
=
∑
nt(Ant) × nt(Ant)
− n(Ant) .
n(Ant) × wt⊕(Ant)
t=1
Pokud je tato hodnota větší než hodnota rozdělení χ2(T-1)(α) s (T-1) stupni volnosti na zvolené hladině
významnosti α, zamítneme hypotézu o shodě platnosti a naskládané váhy a přidáme danou implikaci
Ant ⇒ Class do báze znalostí, protože její platnost nelze ze stávající báze odvodit.
Váhu nového pravidla zvolíme tak, „aby to vyšlo“, tedy tak, abychom po konzultaci s novou bázi
znalostí (tj. s bázi včetně přidaného pravidla) pro příklad popsaný vstupní kombinací Ant odvodili
právě platnost implikace Ant ⇒ Class. Pro nové pravidlo Ant ⇒ Class (w) musí platit
w ⊕ w⊕(Ant) = P(Class|Ant).
Váhu w tedy spočítáme jako
u
w= 1+u,
kde
u =
P(Class| Ant)
1 - P(Class| Ant)
w ⊕ (Ant)
.
1 - w ⊕ (Ant)
Uvedený postup zařazování pravidla do báze si přiblížíme na následujícím příkladu. Řekněme, že
právě testovanou implikací je22
7a ∧ 11a ⇒ 1+,
která má v datech čtyřpolní tabulku:
Class
Ant 11
¬Ant 74
¬Class
14
26
a
11
Tedy platnost této implikace je a + b = 11+14 = 0.44. Předpokládejme dále, že v bázi pravidel
existují tři pravidla, aplikovatelná na kombinaci Ant:
∅
11a
7a
⇒
⇒
⇒
1+
1+
1+
(0.6800)
(0.2720)
(0.3052)
Pokud složíme váhy těchto pravidel pomocí operace ⊕, získáme tzv. naskládanou váhu w⊕(Ant)
w⊕(Ant) = 0.6800 ⊕ 0.2720 ⊕ 0.3052 = 0.2586.
Tato váha se (na základě χ2 testu) statisticky významně liší od platnosti implikace 0.44. Proto do báze
pravidel přidáme pravidlo
7a ∧ 11a ⇒ 1+ (w),
kde váha w je taková , že w ⊕ 0.2586 = 0.44, tedy w = 0.6926.
22
Opět používáme úsporný zápis kategorií.
11
Podoba algoritmu je uvedena na Obr. 9. Opakovaně se střídá generování (krok 1.4) a testování (krok
1.3) nějaké implikace. Řídícími parametry jsou cílová třída Class, maximální délka předpokladu lmax,
minimální četnost předpokladu nmin, a minimální platnost (spolehlivost) pravidla Pmin.
Algoritmus ESOD
Inicializace
1. vytvoř CAT - seznam kategorií A(v) uspořádaný sestupně dle četnosti n(A(v))
2. vytvoř OPEN - seznam implikací A(v) ⇒ Class uspořádaný sestupně dle n(A(v))
3. přiřaď do KB prázdné pravidlo ∅ ⇒ Class (w), kde w je relativní četnost třídy Class
Hlavní cyklus
1. dokud OPEN není prázdný seznam
1.1. vezmi první implikaci ze seznamu OPEN (označ ji Ant ⇒ Class )
1.2. spočítej platnost této implikace P(Class|Ant)
1.3. pokud P(Class|Ant) ≥ Pmin ∨ P(Class|Ant) ≤ (1 - Pmin) potom
1.3.1. spočítej pomocí kombinační funkce ⊕ váhu w⊕(Ant) naskládanou z vah pravidel
v bázi KB aplikovatelných na Ant
1.3.2. pokud se platnost implikace P(Class|Ant) signifikantně liší (na základě χ2 testu)
od naskládané váhy w⊕(Ant) potom
1.3.2.1. přidej do KB pravidlo Ant ⇒ Class (w), kde w ⊕ w⊕(Ant) = P(Class|Ant)
1.4. je-li l(Ant) < lmax, pak
1.4.1. pro každou kategorii A(v) ze seznamu CAT takovou, že:
• atribut A se nevyskytuje v Ant
• A(v) je v CAT před všemi kategoriemi z Ant - tedy platí, že četnost n(A(v))
je větší nebo rovna četnosti n(Ant)
1.4.1.1. generuj novou kombinaci AntA = Ant ∧ A(v)
1.4.1.2. je-li n(AntA) > nmin přidej AntA do seznamu OPEN za poslední kombinaci
Comb takovou, že n(Comb) ≥ n(AntA)
1.5. odstraň Ant ze seznamu OPEN
Obr. 9 Algoritmus ESOD pro jednu třídu
Pro rozšíření algoritmu pro více tříd se nabízejí dvě možnosti: vytvářet pravidla k jednotlivým třídám
samostatně opakovaným průchodem trénovacími daty (tedy analogicky s vytvářením neuspořádaných
pravidel v algoritmu CN4), nebo vytvořit pravidla ke všem třídám současně (tady je analogie
s vytvořením rozhodovacího seznamu v algoritmu CN4). Byla zvolena druhá varianta, která vede
k tomu, že k jednomu předpokladu Ant se vytvoří tolik pravidel, kolik je hodnot cílového atributu.
Báze znalostí má tedy podobu „baterií pravidel“
Ant ⇒ Classt (wt),
kde Classt=C(vt), t=1,…,T.
Uvedené rozšíření vede ke změnám v algoritmu z Obr. 9. Nejjednodušší změnou je to, že místo jedné
implikace Ant ⇒ Class budeme uvažovat T implikací Ant ⇒ Classt a místo jednoho pravidla Ant ⇒
Class (w), budeme uvažovat T pravidel Ant ⇒ Classt (wt),. Zásadnější změna souvisí se způsobem
skládání vah. Použitý inferenční mechanismus interpretuje váhu 1 jako „jistě ano“, váhu 0 jako „jistě ne“
a váhu 0.5 jako „nevím“. Váha „nevím“ přitom odpovídá situaci, kdy jsou všechny cíle v datech
zastoupeny rovnoměrně, tedy kdy platnost je rovna hodnotě 1/T, kde T je počet tříd. Pro více než dvě
třídy (resp. pro více než jednu třídu a její protipříklady) tedy musíme mezi sebou převádět váhy a
12
platnosti tak, aby při práci s pravděpodobnostmi (χ2 test) bylo pro „nevím“ použito 1/T, a při práci
s vahami (operace ⊕) bylo pro „nevím“ použito 0.5 23:
T
váha = 2 × platnost
pro platnost ∈ [0, 1/T]
(
T
T
)
váha = 2∗(T-1) × platnost + 1 - 2∗(T-1)
pro platnost ∈ [1/T, 1]
resp.
2
platnost = T × váha
platnost =
2∗(T-1)
T
pro váhu ∈ [0, 0.5]
(
× váha + 1 -
)
2∗(T-1)
T
pro váhu ∈ [0.5, 1]
Obr. 10 Převod mezi platností a váhou
Graf na Obr. 10 ukazuje způsob převodu. Vytváření pravidel k více třídám tedy znamená následující
změny v algoritmu pro tvorbu pravidel (Obr. 9):
•
váha prázdného vztahu je relativní četnost převedená na váhu (krok 3 inicializace),
•
do χ2 testu vstupuje platnost implikace a naskládaná váha převedená na platnost (krok
1.1.2 hlavního cyklu),
•
váha wt pravidla se spočítá ze vztahu wt ⊕ wt⊕(Ant) = P´(Classt|Ant), kde P´(Classt|Ant) je
platnost převedená na váhu (krok 1.1.2.1 hlavního cyklu).
Místo cílové kombinace Class uživatel zadává cílový atribut C.
V modifikaci pro více tříd byl algoritmus implementován v systému KEX [Berka, 1993], [Berka,
Ivánek, 1994], i v novém systému pro dobývání znalostí z databází nazvaném LISP-Miner.
23
Pro T=2 se žádný převod provádět nemusí.
13
Použijeme-li uvedený algoritmus pro naše oblíbená data (Obr. 3), získáme pravidla uvedená na Obr.
11 24. Výpis (převzatý ze systému KEX) ukazuje hodnoty n(Ant) (frequency left), n(Class) (frequency
right) a n(Ant∧Class) (frequency both), váhu pravidla a vlastní pravidlo. První pravidlo s předpokladem
0- je tzv. prázdné pravidlo (implicitní pravidlo, default); toto pravidlo zařadí každý příklad do
majoritní třídy (tedy úvěr(ano)). V zápise pravidla je každá kategorie uvedena jako dvojice [pořadové
číslo atributu, písmeno označující hodnotu], tedy stejně jako v podkapitole věnované generování
kombinací u asociačních pravidel. Pravidla, která rozhodují o tom, kdy půjčit jsou tedy 25:
1. úvěr(ano) (0.6667)
2. IF příjem(vysoký)
THEN úvěr(ano) (0.9802)
3. IF konto(vysoké)
THEN úvěr(ano) (0.9753)
4. IF nezaměstnaný(ne) ∧ pohlaví(žena) THEN úvěr(ano) (0.9512)
6. IF konto(střední) ∧ nezaměstnaný(ne)
THEN úvěr(ano) (0.9512)
GENERATED RULES
Frequencies
no. left
right
both
weight
Implication
-----------------------------------------------------1 120.00 80.00 80.00
0.6667
0- ==> 5a
2
50.00 80.00 50.00
0.9802
1v ==> 5a
3
40.00 80.00 40.00
0.9753
2v ==> 5a
4
20.00 80.00 20.00
0.9512
4n3z ==> 5a
5
20.00 80.00
0.00
0.0127
2s4a ==> 5a
6
20.00 80.00 20.00
0.9512
2s4n ==> 5a
7
20.00 80.00
0.00
0.0127
2n1n ==> 5a
8
10.00 80.00
0.00
0.0256
2s3z1n ==> 5a
Obr. 11 Pravidla nalezená systémem KEX
Uvedená pravidla odpovídají zadání lmax = 4, nmin = 1 a Pmin = 0.9 26. Zde je třeba říci, že vhodná volba
těchto parametrů vyžaduje jistou zkušenost. Neplatí totiž, že se zvyšujícím se rozsahem
prozkoumaných implikací se zlepšuje chování nalezené báze znalostí. Dochází zřejmě k přeučení
systému. Jsou ale jakési standardní strategie, jak volit vstupní parametry pro tvorbu báze pravidel:
•
plná analýza (lmax = počet všech atributů, které se nevyskytují v cíli, nmin = 1, Pmin = 0),
•
minimální analýza (lmax = 1, nmin = 1, Pmin = 0),
•
analýza "bez šumu" (Pmin = 1); toto zadání znamená, že se do báze zařadí pouze 100%
vztahy27.
24
Dopustili jsme se přitom malého triku. Vzhledem k tomu, že algoritmus používá statistický test, je pro jeho správnou
činnost potřeba dostatečný počet trénovacích příkladů. Zde jsme tedy každý příklad vážili (násobili) vahou 10.
25
Jedná se o pravidla, která mají váhu w>0.5.
26
Připomeňme, že kombinační analýza nalezla pro totéž zadání celkem 46 implikací se závěrem úvěr(ano).
27
Tato strategie je vhodná, víme-li apriori, že data neobsahují žádné kontradikce. Budeme pak do báze znalostí zařazovat
pouze pravidla s velikou diskriminační silou.
14
Při klasifikaci nového příkladu použijeme všechna 28 aplikovatelná pravidla a pomocí funkce ⊕
poskládáme jejich váhy. Příklad zařadíme ke třídě, pro kterou odvodíme nejvyšší váhu; v případě
jedné třídy příklad patří k této třídě, pokud odvodíme váhu w⊕>0.5. Kolem hodnoty w⊕=0.5 lze zvolit
jakési „pásmo nerozhodnutelnosti“. Příklady pro které se odvodí váha v tomto pásmu nebudou
systémem zařazeny do žádné třídy.
Jestliže porovnáme algoritmus ESOD s dříve uvedenými klasickými algoritmy strojového učení pro
tvorbu rozhodovacích stromů a pravidel, nalezneme následující odlišnosti:
1. vzhledem k použitému statistickému testu je potřeba dostatečný počet příkladů,
2. pro jeden příklad lze nalézt více použitelných pravidel (z trénovacích dat se neodstraňují pokryté
objekty),
3. v bázi pravidel se mohou objevit jako pravidla vztah i jeho prodloužení (redundance je měřena
statistickým testem),
4. při konzultaci může systém pro jeden příklad doporučit (odvodit s pozitivní vahou) více cílů 29.
Algoritmus tedy vytváří více pravidel, což umožňuje různé pohledy na danou úlohu a umožňuje
provést konzultaci i v případě neúplně (nebo částečně chybně) popsaného případu. Redundance (v
tomto smyslu) je také výhodná při klasifikaci objektů, které nebyly zahrnuty v trénovacích datech.
5.3.5 Chybějící hodnoty
Podobně jako v případě rozhodovacích stromů, i v případě rozhodovacích pravidel se chybějící
hodnoty ošetřují ve fázi předzpracování dat (často implementované jako součást systému pro tvorbu
pravidel). Brůha [Bruha, 1996] uvádí tyto relativně vyčerpávající možnosti, jak nakládá s chybějící
hodnotou systém CN4:
1) ignoruje příklad s nějakou chybějící hodnotou,
2) nahradí chybějící hodnotu novou hodnotou „nevím“,
3) nahradí chybějící hodnotu některou z existujících hodnot atributu a sice:
a) nejčetnější hodnotou,
b) proporcionálním podílem všech hodnot,
c) libovolnou hodnotou.
V systému KEX se používá pouze nejjednodušší možnost – ignorování příkladů s chybějícími údaji.
28
29
To je výrazný rozdíl ve srovnání s jinými algoritmy pro tvorbu rozhodovacích pravidel a stromů, kde se použije jediné
pravidlo resp. cesta stromem.
V případě, že se cíle navzájem nevylučují (např. pacient je imunní, pacient nemá infekci [Berka,1993d]), lze to objevit.
15
5.3.6
Numerické atributy
Vzhledem k tomu, že algoritmy pro tvorbu rozhodovacích pravidel pracují pouze s kategoriálními daty
30
, je třeba numerické atributy diskretizovat. Opět se nabízejí dvě možnosti, diskretizace ve fázi
předzpracování (tak je např. řešena diskretizace v systému KEX), nebo diskretizace během běhu
algoritmu. Tento druhý způsob si přiblížíme na příkladu diskretizace v systému CN4 [Berka, Bruha,
1998].
Diskretizace je v systému CN4 prováděna při každém průchodu hlavním cyklem algoritmu pro tvorbu
pravidel. Každý atribut se diskretizuje samostatně. Cílem diskretizace je nalézt vhodné hodnoty xi
atributu A, které tento atribut rozdělí na (polouzavřené) intervaly vi =(xi1,xi2]. To pak umožní vytvářet
kategorie A(vi). Vhodné horní (dolní) meze hledaných intervalů odpovídají nerostoucím (neklesajícím)
lokálním maximům heuristické vyhodnocovací funkce F(xi). Pro funkci F se používá buď negativní
entropie, nebo Laplaceův odhad spolehlivosti (viz 5.3.2). Roli antecedentu pro výpočet četností
figurujících v příslušných vzorcích nyní hraje testovaný interval.
Algoritmus SetBounds(a)
1. nechť PoleMezí je prázdné
2. pro každou hodnotu xi atributu A
2.1. spočítej pro každou třídu Classt (t=1,..,T) četnosti nt(A(≤xi)) a nt(A(>xi))
2.2. spočítej hodnotu funkce F(A(≤xi)) (označ Flevá(xi)) pro případ, že xi je
potenciální horní mez, tedy že A(≤xi) bude vytvořená kategorie
2.3. spočítej hodnotu funkce F(A(>xi)) (označ Fpravá(xi)) pro případ, že xi je
potenciální dolní mez, tedy že A(>xi) bude vytvořená kategorie
3. pro každou hodnotu xi atributu A
3.1. pokud Flevá(xi) je nerostoucí lokální maximum, tedy
Flevá(xi-1) ≤ Flevá(xi) > Flevá(xi+1)
3.1.1. přidej kategorii A(≤ xi) do PoleMezí v pořadí podle hodnoty Flevá(xi)
3.2. pokud Fpravá(xi) je neklesající lokální maximum, tedy
Fpravá(xi-1) < Fpravá(xi) ≥ Fpravá(xi+1)
3.2.1 přidej kategorii A(>xi) do PoleMezí v pořadí podle hodnoty < Fpravá(xi)
4. pro každou dvojici hodnot xi1 , xi2 z PoleMezí
4.1. spočítej pro každou třídu Classt (t=1,..,T) četnosti nt(A(v)), kde v=(xi1,xi2]
4.2. spočítej hodnotu funkce F(A(v))
4.3. přidej kategorii A(v), kde v=(xi1,xi2] do PoleMezí v pořadí podle hodnoty F(v)
Obr. 12 Diskretizace v algoritmu CN4
Algoritmus diskretizace je uveden na Obr. 12. Diskretizační procedura postupně bere do úvahy
všechny hodnoty vi jako potenciální meze a počítá pro ně hodnotu funkce F. Pak hledá lokální maxima
(vhodné meze). V posledním kroku se z mezí vytvářejí intervaly.
Vezměme si pro ilustraci tohoto algoritmu situaci, kdy máme 7 pozitivních příkladů (s hodnotami
numerického atributu 45, 46, 50, 50, 100, 100, 120) a 5 negativních příkladů (s hodnotami atributu 51,
30
Při hodnocení pravidel nás zajímají četnosti.
16
51, 51, 99, 99). Průběh funkce F (počítané jako negativní entropie) je uveden na Obr. 13. Potenciální
dolní meze intervalů jsou 45, 50, a 99, jedinou potenciální horní mezí je hodnota 50. To vede na
vytvoření následujících intervalů seřazených podle hodnoty fukce F a četnosti n(A(v)). (Tab. 1):
Interval v
F(A(v))
n(A(v))
50 < x <= 99
0.000
5
x <= 50
0.000
4
99 < x
0.000
3
45 < x <= 50
0.000
3
50 < x
-0.954
5
45 < x <= 99
-0.954
5
45 < x
-0.994
6
Tab. 1 Intervaly vzniklé diskretizací atributu A
Neg.entropie
Flevá(x)
Fpravá(x)
0
x <= 50
x > 99
x > 50
-0.95 --0.99 --1
45
|
46
|
50
|
51
|
99
|
100
|
120
x
Obr. 13 Lokální maxima negativní entropie pro diskretizaci
To, že se diskretizace provádí dynamicky během tvorby pravidel znamená, že atributy mohou být
diskretizovány opakovaně. Výsledky diskterizace ale mohou být různé, protože pokaždé vstupují do
hry pouze dosud nepokryté (tedy různé) příklady.
17
5.3.7
Numerické třídy
Na rozdíl od rozhodovacích stromů, kde jsou algoritmy pro práci s numerickými třídami běžně
používány 31, jsou algoritmy pro tvorbu rozhodovacích pravidel k numerickým třídám záležitostí spíše
výzkumnou. K prvním takovým algoritmům patří R2 [Torgo,1995]. R2 hledá pravidla, která jsou
„nejlepší“ vzhledem k střední absolutní odchylce mezi skutečnou hodnotou a hodnotou predikovanou.
Algoritmus je omezen pouze na numerické atributy. Pravidla vytvářená systémem mají podobu
IF Ant THEN avgAnt(y), nebo
IF Ant THEN ∑i,Ant ki xi.
kde předpoklad Ant je kombinace kategorií typu A(>xi), resp. A(≤xi), závěr pravidla je v prvním
případě konstanta (průměrná hodnota cílového atributu pro příklady splňující předpoklad), v druhém
případě lineární kombinace vstupních atributů (opět pro příklady splňující předpoklad).
Podrobněji se opět podíváme na modifikaci systému CN4 [Bruha, Berka,1997]. V případě
numerických tříd hledá systém CN4 pravidla ve tvaru
IF Ant
THEN avgAnt(y), MvarAnt(y).
Předpoklad Ant je opět kombinace kategorií. Vzhledem k tomu, že C je nyní numerický atribut,
objevuje se v závěru pravidla průměrná hodnota cíle počítaná pro příklady, které jsou pokryty
pravidlem avgAnt(y) a rozptyl tohoto průměru MvarAnt(y):
1
avgAnt(y) = n(Ant)
n(Ant)
∑ yi , pro oi ∈ {Ant}
i=1
varAnt2(y)
MvarAnt(y) = n(Ant) ,
kde
n(Ant)
1
varAnt2(y) = n(Ant)-1 ∑ (yi - avgAnt(y))2 , pro oi ∈ {Ant}.
i=1
Generování pravidel probíhá podobně jako ve verzi algoritmu pro diskrétní třídy; metodou
specializace komplexů (kombinací) přidáváním selektorů (hodnot atributů). Pravidla se vyhodnocují
na základě porovnání směrodatné odchylky cílového atributu pro příklady pokryté pravidlem a
směrodatné odchylky pro celá trénovací data.
Při klasifikaci nových příkladů se hledá aplikovatelné pravidlo, průměrná hodnota cílového atributu
tohoto pravidla avgAnt(y) se pak považuje za hodnotu odvozenou pro uvažovaný příklad. Známe-li
správnou hodnotu cíle pro tento příklad, můžeme posoudit přesnost provedené klasifikace tak, že
zjistíme, zda tato správná hodnota leží v intervalu
[avgAnt(y)-
31
MvarAnt(y)
3
, avgAnt(y)+
MvarAnt(y)
3
Jde v tomto případě o regresní stromy implementované např. v systému CART.
18
].
5.3.8
Koncepty proměnlivé v čase
Ve většině úloh dobývání znalostí se předpokládá, že koncept (třída) jehož popis se máme naučit je
stálý a s přibývajícím počtem trénovacích příkladů se nemění. Použité algoritmy pak obvykle pracují
s celými daty naráz, v dávkovém režimu. Jsou ale úlohy, kdy se koncept v průběhu času dramaticky
změní. Příkladem může být předpovídání počasí, které silně závisí na roční době. Jasná obloha v létě
dává tušit vysoké teploty, jasná obloha v zimě znamená teploty nízké. Pak je užitečné se takovýmto
změnám konceptu přizpůsobit tak, že bereme do úvahy jen aktuální (čerstvá) data. V oblasti
strojového učení se tento přístup nazývá inkrementální učení a zapomínání.
Algoritmus takového typu byl implementován v systémech FLORA (např. [Widmer, Kubat, 1992]).
Jádrem algoritmu je hledání hypotéz pokrývajících příklady dané třídy metodou generalizace
analogicky jako u algoritmu AQ. Příklady jsou popsány hodnotami (kategoriálních) atributů a
hypotézy mají podobu kombinací kategorií 32. Kombinace jsou ukládány do tří množin: množina POS
obsahuje hypotézy konzistentní s konceptem (kombinace pokrývá pouze pozitivní příklady), množina
NEG obsahuje hypotézy konzistentní s negací konceptu (kombinace pokrývá pouze negativní
příklady), a množina POT obsahuje potenciální hypotézy (kombinace které pokrývají pozitivní i
negativní příklady). U každé hypotézy Comb se sleduje, kolik pozitivních resp. negativních příkladů
pokrývá (n+(Comb), n-(Comb)). Inkrementalita algoritmu učení spočívá v tom, že množiny POS, NEG a
POT jsou aktualizovány po každém načtení nového příkladu. je-li např. nový pozitivní příklad pokryt
hypotézu z NEG, přesune se tato hypotéza do POT. Popis algoritmu je na Obr. 14.
Algoritmus inkrementálního učení
1. pro každý příklad oi z trénovací množiny
1.1. je-li oi pozitivní potom
1.1.1. pro každou Comb z POS pokud Comb pokrývá oi přiřaď n+(Comb) :=
n+(Comb) + 1
1.1.2. pro každou Comb z POT pokud Comb pokrývá oi přiřaď n+(Comb) :=
n+(Comb) + 1
1.1.3. pro každou Comb z NEG pokud Comb pokrývá oi přiřaď n+(Comb) := 1 a
přesuň Comb do POT
1.1.4. pokud v POS není žádná Comb která pokrývá oi, přidej do POS novou
kombinaci CombN, která pokryje oi a nebude (kvůli sporu) v souladu
s hypotézami v POT a NEG, a přiřaď n+(CombN) := 1
1.2. je-li příklad oi negativní potom
1.2.1. pro každou Comb z NEG pokud Comb pokrývá oi přiřaď n-(Comb) :=
n(Comb) + 1
1.2.2. pro každou Comb z POT pokud Comb pokrývá oi přiřaď n-(Comb) :=
nComb) + 1
1.2.3. pro každou Comb z POS pokud Comb pokrývá oi přiřaď n-(Comb):= 1 a
přesuň Comb do POT
1.2.4. pokud v NEG není žádná Comb která pokrývá oi, přidej do NEG novou
kombinaci CombN, která pokryje oi a nebude (kvůli sporu) v souladu
s hypotézami v POT a POS, a přiřaď n-(CombN) := 1
Obr. 14 Inkrementální učení v systému FLORA
32
Každou kombinaci můžeme chápat jako předpoklad jednoho pravidla.
19
Reakce na změnu konceptu je umožněna díky mechanismu zapomínání. Ten je analogický algoritmu
učení. Starší příklady jsou zapomínány, což opět vede ke změnám v množinách POS, NEG a POT –
tentokrát se ale počty pokrytých příkladů odčítají. Zapomenou-li se např. všechny příklady, které
odpovídaly nějaké hypotéze Comb z množiny POS (tedy n+(Comb) klesne na 0), odstraní se Comb z POS
(viz Obr. 15). To že starší příklady jsou zapomínány znamená, že FLORA pracuje jen s jakýmsi
„oknem“, které se posunuje podél trénovací množiny. V paměti se tak udržuje jen určitý počet
nejaktuálnějších příkladů. Schematicky je celý proces učení a zapomínání znázorněn na Obr. 16.
Algoritmus inkrementálního zapomínání
1. je-li příklad oi pozitivní příklad, potom
1.1. pro každou Comb z POS
1.1.1. pokud Comb pokrývá oi přiřaď n+(Comb) := n+(Comb) - 1
1.1.2. je-li n+(Comb) = 0, odstraň Comb z POS
1.2. pro každou Comb z POT
1.2.1. pokud Comb pokrývá oi přiřaď n+(Comb) := n+(Comb) - 1
1.2.2. je-li li n+(Comb) = 0, přesuň Comb do NEG
2. je-li příklad oi pozitivní příklad, potom
2.1. pro každou Comb z NEG
2.1.1. pokud Comb pokrývá oi přiřaď n-(Comb) := n-(Comb) - 1
2.1.2. je-li li n-(Comb) = 0, odstraň Comb z NEG
2.2. pro každou Comb z POT
2.2.1. pokud Comb pokrývá oi přiřaď n-(Comb) := n-(Comb) - 1
2.2.2. je-li n-(Comb) = 0, přesuň Comb do POS
Obr. 15 Inkrementální zapomínání v systému FLORA
učení
u−
u+
POS
u+
POT
NEG
zapomínání
z+
z−
u−
z+
z−
Obr. 16 Proces inkrementálního učení a zapomínání
Přizpůsobení se změně konceptu je umožněno dynamickou modifikací velikosti okna (počtu příkladů
uchovávaných v paměti). Myšlenka této modifikace je poměrně jednoduchá: pokud se koncept
nemění, okno má stabilní velikost (aby se hypotézy vytvářely na základě hodně příkladů), pokud se
koncept začíná měnit, okno se zmenšuje (zapomínají se příklady, které odpovídají starému konceptu).
Jak ale poznat začínající změnu konceptu? Změna konceptu je automaticky indikována tehdy, když
klesá podíl počtu pozitivních příkladů pokrytých množinou POS ku velikosti množiny POS 33. Tento
pokles znamená, že se nedaří nalézt dostatečně obecné hypotézy pokrývající pozitivní příklady, a že se
tedy něco děje. Reakcí systému na tuto skutečnost je zmenšení velikosti okna o 10%. Pokud se zdá
být kontext stabilní (výše uvedený podíl je vysoký), velikost okna se nemění. Pokud není podíl ani
velký ani malý (systém se zotavuje ze změny konceptu), okno roste tak, že po načtení nového příkladu
se nejstarší příklad nezapomene.
33
Velikost množiny POS se měří počtem kategorií vyskytujících se v hypotézách v množině POS.
20
Uvedený algoritmus byl schopen dobře zpracovávat pouze nezašuměná data, neboť v množině POS
jsou hypotézy konzistentní s pozitivními příklady a v množině NEG jsou hypotézy konzistentní
s negativními příklady. Novější verze algoritmu toto omezení odstranila tak, že neklade taková striktní
omezení na obě množiny. Jednotlivé hypotézy se vyhodnocují statisticky ([Widmer, 1994]).
5.3.9
Integrace znalostí
Integrace znalostí je otázka, která budí pozornost řady odborníků. Integrací se rozumí zkombinování
znalostí získaných z různých zdrojů do uceleného, konsistentního systému. O integraci znalostí se
mluví v souvislosti s expertními systémy (kdy je třeba sloučit znalosti získané od více expertů) i
v souvislosti se strojovým učením a dobýváním znalostí z dat V tomto druhém kontextu se může
jednat o využití doménových znalostí (tzv. background knowledge) majících podobu např. hierarchie
hodnot atributů nebo dílčích expertních znalostí 34, nebo o zpřesňování a revizi dříve získaných
znalostí (knowledge refinement and revision) na základě dalších dat 35. Předpokládáme přitom, že
staré i nové příklady odpovídají stejnému konceptu; na rozdíl od předcházející podkapitoly se tedy nic
nezapomíná.
Obr. 17 ukazuje dva možné přístupy k integrování znalostí; „složení“ jednotlivých modelů do modelu
výsledného (vlevo), nebo aktualizace modelu na základě nových dat (vpravo). První možnost
nalezneme např. v [Brazdil, Torgo, 1990]. Dílčí znalosti mají podobu pravidel získaných pomocí
systémů ID3 nebo AQ z různých dat. Algoritmus pro integrování prochází seznam všech pravidel
uspořádaný podle kvality 36 a postupně přidává do souhrnné báze jen ta nejlepší. Poté, co je vybráno
nějaké pravidlo, algoritmus přepočítá kvalitu všech zbývajících pravidel 37. Proces výběru pravidel
končí, když není k dispozici žádné pravidlo s dostatečnou kvalitou.
Staré
znalosti 1
......
Staré
znalosti z
Nová trénovací data
Integrace
znalostí
Staré
znalosti
Integrace
znalostí
Nové znalosti
Nové znalosti
Obr. 17 Obecné schéma integrace znalostí
Příklad druhého přístupu, zařazený do kontextu systému KEX, nalezneme např. v [Berka, 1997].
Integrace znalostí je zde řešena při zachování hlavní myšlenky algoritmu ESOD, přidávat do báze jen
ty implikace, která přinášejí novou znalost k již existujícím pravidlům. Algoritmus integrace tedy
34
Viz pasáže věnované hierarchii atributů a induktivnímu logickému programování.
35
Při dobývání znalostí může nastat situace kdy získáme další trénovací data poté, kdy jsme již vytvořili nějaký model. Pro
algoritmy umožňující inkrementální učení je tento typ integrování znalostí přirozeným způsobem práce. Rozhodovací
stromy a pravidla se ale obvykle vytvářejí v dávkovém režimu
36
Kvalita pravidla závisí na přesnosti a pokrytí. Podrobněji v kapitole věnované asociačním pravidlům.
37
Kvalita zbývajících pravidel se počítá s vyloučením příkladů, pokrytých právě vybraným pravidlem. Aby to šlo spočítat, je
ke každému pravidlu přiřazena informace o tom, které příklady pokrývá a které z nich patří k dané třídě.
21
porovnává implikace vytvořené pro nová trénovací data a dříve vytvořená pravidla. Pokud nějaká
implikace Ant ⇒ Class bude zařazena jako nové pravidlo, může to ovlivnit taková již existující
pravidla Combr ⇒ Class (wr) pro která je kombinace Combr prodloužením (nadkombinací) kombinace
Ant. Tato pravidla je tedy třeba rovněž otestovat a buď je z báze pravidel odstranit (jsou-li nyní
zbytečná), nebo modifikovat jejich váhu. Schéma algoritmu je na Obr. 18.
Algoritmus integrace znalostí
Inicializace
1. nechť KB je již existující báze pravidel
2. nechť IMPL je seznam implikací Ant ⇒ Class vytvořených z nových dat uspořádaný
sestupně dle četnosti n(Ant)
Hlavní cyklus
1. dokud IMPL není prázdný seznam
1.1. vezmi první implikaci ze seznamu IMPL (označ ji Ant ⇒ Class )
1.2. spočítej pomocí kombinační funkce ⊕ váhu w⊕(Ant) naskládanou z vah pravidel
v bázi KB aplikovatelných na Ant
1.3. pokud se platnost implikace P(Class|Ant) signifikantně liší (na základě χ2 testu) od
naskládané váhy w⊕(Ant) potom
1.3.1. přidej/přepiš do KB pravidlo Ant ⇒ Class (w), kde w ⊕ w⊕(Ant) = P(Class|Ant)
1.3.2. pro každé pravidlo Combr ⇒ Class (wr) z KB takové, že Ant je podkombinací
kombinace Combr
1.3.2.1. spočítej pomocí kombinační funkce ⊕ váhu w⊕(Combr)
1.3.2.2. pokud se platnost implikace P(Class|Combr) signifikantně liší od
naskládané váhy w⊕(Combr) potom modifikuj váhu wr , jinak ostraň pravidlo
Combr ⇒ Class (wr) z KB
1.4. odstraň Ant ⇒ Class ze seznamu IMPL
Obr. 18 Algoritmus integrování znalostí pro systém KEX
5.3.10 Hierarchie hodnot atributů
S hierarchiemi (taxonomiemi) hodnot atributů jsme se již setkali u asociačních pravidel. Podobný
problém hledání pravidel pro různé úrovně obecnosti se může vyskytnout i v souvislosti s úlohou
klasifikace.
Ukažme si jeden přístup práce s hierarchiemi atributů, který byl navržen v kontextu algoritmu ESOD.
Svátek [Svátek, 1996] rozlišuje dva typy hierarchií: hierarchii hodnot “vstupních” atributů a hierarchii
hodnot cílového atributu. V obou případech má hierarchie podobu stromu s kořenem odpovídajícím
nejobecnější hodnotě “any”. Tato hodnota vyjadřuje, že na atributu nezáleží 38 . Příklady hierarchií jsou
uvedeny na Obr. 19 a Obr. 20. Původní hodnoty atributů jsou v plných obdélnících, abstraktní
v tečkovaných.
38
Podobně tomu bylo v kapitole o učení jako prohledávání
22
V případě hierarchie “na vstupu” 39 hledá navržený algoritmus pouze pravidla, která mají
v předpokladu hodnoty všech atributů. Báze pravidel se tedy místo od prázdného pravidla začíná
vytvářet od pravidla, které má v předpokladu hodnotu “any” u všech atributů. Specializace se provádí
tak, že se hodnota “any” u nějakého atributu nahradí speciálnější hodnotou v rámci dané hierarchie.
Četnost výskytu takové hodnoty bude samozřejmě menší než u hodnoty obecnější, je tedy zachováno
generování kombinací podle četnosti. Podobně jako v původním algoritmu ESOD se postupně
procházejí všechny implikace, a zjišťuje se, zda se mají zařadit do báze pravidel. Naskládaná váha
w⊕(Ant) pro konkrétní implikaci Ant ⇒ Class se počítá ze všech pravidel Combr ⇒ Class obecnějších
než tato implikace ve smyslu hierarchie hodnot atributů. Pravidlo Combr ⇒ Class je obecnější než
implikace Ant ⇒ Class pokud hodnoty všech atributů v Combr jsou stejné nebo obecnější, než hodnoty
atributů v Ant. V bázi pravidel se tak mohou vyskytnout pravidla s hodnotami atributů z různé úrovně
hierarchie (bydlení(vlastní_dům) i bydlení(nájemní)).
any
vlastní
vlastní dům
družstevní
vlastní byt
nájemní
Nájemní
byt státní
Nájemní
byt s
majitelem
Obr. 19 Hierarchie vstupního atributu “bydlení”
V případě hierarchie hodnot cílového atributu (příklad takové hierarchie je na Obr. 20) se vytváří
samostatná báze pravidel pro každou nelistovou hodnotu c dané hierarchie. Do učícího se algoritmu
přitom vstupují pouze ty příklady, které patří do podstromu této hodnoty. Přitom se mění i hodnota
cíle, původní (nejspeciálnější) hodnota je nahrazena hodnotou obecnější, ležící ovšem rovněž
v podstromu hodnoty v. Tedy např. pro nelistový uzel “stanovena” (Obr. 20) budeme vytvářet bázi
pravidel k příkladům tříd “imunní” a “neimunní”. Schema algoritmu je na Obr. 21.
Vytvořená hierarchická báze pravidel je pak použitelná pro konzultaci na různých úrovních obecnosti.
Tento přístup je spíše vhodnější pro vysvětlování než pro klasifikaci.
39
Jedna hodnota může být součástí více hierarchií. To je dokumentováno v [Svátek, 1996] na příkladu objektů zakreslených
v mapě, kdy např. “potok” může být v jedné hierarchii chápan jako vodní plocha (stejně jako rybník) a v druhé hierarchii
jako jednorozměrný útvar (stejně jako cesta).
23
any
nestanovena
stanovena
imunní
neimunní
neinfikován
infikován
Obr. 20 Hierarchie cíle “diagnoza”
Algoritmus tvorby pravidel
1. pro každou nelistovou hodnotu v cílového atributu C
1.1. zařaď do trénovací množiny DTRv ty příklady, které mají jako hodnotu
cílového atributu speciálnější hodnotu, než v
1.2. v množině DTRv nahraď původní hodnoty cílového atributu vk hodnotou
vx takovou, že vx je speciálnější než v ale obecnější než ck (pokud vk je
bezprostřední následovník hodnoty v, ponech vk nezměněno)
1.3. aplikuj algoritmus ESOD na trénovací data DTRv
1.4. přiřaď nalezená pravidla Rv k uzlu v hierarchie
Obr. 21 Použití algoritmu ESOD pro hierarchii tříd
Touto zmínkou o práci s hierarchiemi hodnot zakončíme celou kapitolu věnovanou rozhodovacím
pravidlům.
Literatrura:
[Berka, 1993] Berka,P.: Vybrané znalostní systémy, SAK, SAZE, KEX. Skripta VŠE, Praha 1993.
[Berka, 1993b] Berka, P.: Knowledge EXplorer. A tool for automated knowledge acquisition from data. Tech.
Report, Austrian Research Institute for AI, Vienna, TR-93-03, 1993, 23s.
[Berka, 1993c] Berka,P.: Discretization of numerical attributes for Knowledge EXplorer. Výzkumná zpráva,
Praha, LISP-93-03, 1993, 11s.
[Berka, 1993d] Berka,P.: A comparison of three different methods for acquiring knowledge about virological
hepatitis tests. Tech. Report, Austrian Research Institute for AI, Vienna, TR-93-10, 1993, 29s.
24
[Berka, 1997] Berka,P.: Towards knowledge integration via knowledge revision: The Knowledge Explorer
approach. In: (Nakhaeizadeh, Bruha, Taylor eds.) Proc. ECML'97 Workshop Dynamically Changing
Domains: Theory Revision and Context Dependence Issues. Prague, 1997, 1-8.
[Berka, Bruha, 1998] Berka,P. - Bruha,I.: Empirical comparison of various discretization procedures. Int. J.
of Pattern Recognition and Artificial Intelligence Vol. 12 No. 7 (1998) 1017-1032.
[Berka, Ivánek, 1994] Berka,P. - Ivánek,J.: Automated knowledge acquisition for PROSPECTOR-like expert
systems. In. (Bergadano, de Raedt eds.) Proc. ECML'94, Springer 1994, 339-342.
[Brazdil, Torgo, 1990] Brazdil,P. – Torgo,L.: Knowledge acquisition via knowledge integration. In: Current
Tredns in Knowledge Acquisition, IOS Press, 1990.
[Bruha, 1996] Bruha,I.: Rule-induction in machine learning: Some latest enhancements and trends. In: Proc.
Artificial Intelligence Techniques AIT’96, Brno, 1996.
[Bruha, Berka, 1997] Bruha,I. – Berka,P.: Knowledge acquisition of rules with continuous classes: Empirical
comparison of two methods. In: (Kaylan, Lehman eds.) Proc. European
Simulation Multiconference
ESM'97, SCS, 1997, Vol.2, 42-46.
[Bruha, Kočková, 1994] Bruha,I. – Kočková,S.: A support for decision making: Cost-sensitive learning system.
Artificial Intelligence in Medicine, 6 (1994), 67-82.
[Clark, Niblett, 1989] Clark,P. - Niblett,T.: The CN2 induction algorithm. Machine Learning, 3 (1989), 261283.
[Duda, Gasching, 1979] Duda,R.O. - Gasching,J.E.: Model design in the Prospector consultant system for
mineral exploration. in: Michie,D. (ed.), Expert Systems in the Micro Electronic Age, Edinburgh University
Press, UK, 1979.
[Goodman, Smyth, 1989] Goodman,R.: Smyth,P. The induction of probabilistic rule sets – the ITRule algorithm.
In: Proc. Int. Wshop on Machine Learning, Morgan Kaufman, 1989.
[Hájek, 1985] Hájek,P.: Combining functions for certainty factors in consulting systems. Int.J. Man-Machine
Studies 22,1985, 59-76.
[Ivánek, Stejskal, 1988] Ivánek,J. - Stejskal,B.: Automatic acquisition of knowledge base from data without
expert: ESOD (Expert System from Observational Data). In: Proc. COMPSTAT'88 Copenhagen,
Physica-Verlag, 1988, 175-180.
[Lavrac, 2000] Lavrac,N.: Decision Rules. Slajdy, http://www.cs.bris.ac.uk/Teaching/Resources/COMS70300/
slides/RulesHTML/, 2000.
[Michalski, 1969] Michalski,R.S.: On the Quasi-minimal solution of the general covering problem. In: Proc. 5th
Int. Symposium on Information Processing FCIP’69, Bled, Yugoslavia, 1969, 125-128.
[Mitchell, 1997] Mitchell,T.: Machine learning. McGraw-Hill. 1997. ISBN 0-07-042807-7
[Svátek, 1996] Svátek,V.: Learning with value hierarchies in the ESOD framework. In: Proc. Artificial
Intelligence Techniques AIT’96, Brno, 1996.
[Torgo,1995] Torgo,L.: Data fitting with rule-based regresion. In: Proc. Artificial Intelligence Techniques
AIT’96, Brno, 1996.
[Widmer, Kubat, 1992] Widmer,G. – Kubat,M.: Learning flexible concepts from streams of examples:
FLORA2. In: (Neumann ed.) Proc. 10th European Conf. on Artificial Intelligence ECAI’92, John Wiley, 1992.
[Widmer, 1994] Widmer,G.: Combining robustness and flexibility in learning drifting concepts. In: (Cohn ed.)
Proc: 11th European Conf. on Artificial Intelligence ECAI’94, John Wiley, 1994.
25

Podobné dokumenty

slajdy - Sorry

slajdy - Sorry příklady a žádný negativní, 2. odstraň pokryté příklady z trénovací množiny DTR, 3. pokud v DTR zbývají nějaké nepokryté pozitivní příklady, vrať se k bodu 1, jinak skonči. Rozšíření algoritmu pro ...

Více

zlom kdo jsem

zlom kdo jsem Takovéto zadání poskytne dětem potřebný pocit orientace a bezpečí pro plné nasazení během hraní. Poslední výše uvedený bod instrukce je důležitou základní pojistkou proti tomu, aby spíše než k posí...

Více

Asociační pravidla

Asociační pravidla Jednou možností, jak se vypořádat s otázkou různé podpory na různých úrovních hierarchie je dynamicky měnit minimální požadovanou podporu v závislosti na úrovni hierarchie dané kombinace tak jak to...

Více

text kapitoly

text kapitoly tedy používají pro uchovávání příkladů pro algoritmus k-nejbližších sousedů. K-d stromy byly původně navrženy jako binární stromy pro indexování příkladů popsaných pouze numerickými atributy8 , poz...

Více

Co je Kaspersky Anti-Virus Personal /Personal Pro?

Co je Kaspersky Anti-Virus Personal /Personal Pro? DODATEK С. KASPERSKY LAB LTD................................228

Více

Kirchnerova-zaverecna_prace

Kirchnerova-zaverecna_prace zaměstnavateli. Účetní informace slouží pro stanovení základu daně z příjmů a v neposlední řadě jsou využívány také manažery při rozhodování o budoucnosti podniku a řízení podnikových procesů. Každ...

Více

Objektově orientované programování II OBOP2

Objektově orientované programování II OBOP2 Ačkoli uvedené řešení bude pracovat stejným způsobem, je zde hlavní rozdíl s ohledem na modelování. Když užíváme části objektů uvažujeme, že třída Address je aspekt třídy Person a Company. Když pou...

Více