text kapitoly

Transkript

text kapitoly
6 Vyhodnocení výsledků
Důležitým krokem v celém procesu dobývání znalostí je interpretace a evaluace nalezených znalostí.
V případě deskriptivních úloh je hlavním kritériem novost, zajímavost, užitečnost a srozumitelnost.
Tyto charakteristiky úzce souvisejí s danou aplikační oblastí, s tím, co přinášejí expertům a koncovým
uživatelům. Z tohoto pohledu můžeme hovořit o
•
zřejmých znalostech, které jsou ve shodě se „zdravým selským rozumem“
příkladem může být pravidlo, že pokud měl pacient problémy v těhotenství, tak se jednalo o
ženu; takovéto znalosti mohou v expertovi vzbudit pochybnost o smysluplnosti dobývání
znalostí – odborníkovi na KDD ale potvrzují, že použitý algoritmus funguje tak jak má,
•
zřejmých znalostech, které jsou ve shodě se znalostmi experta z dané oblasti
příkladem může být pravidlo, že pokud se účet klienta banky pohybuje v záporném zůstatku,
má tento klient problémy se splácením úvěru; takovéto znalosti byť nepřinášejí nic nového,
ukazují expertovi, že použitá metoda je schopna nalézat v datech znalosti,
•
nových, zajímavých znalostech, které přinášejí nový pohled
toto jsou ideální znalosti, které expert hledá,
•
znalostech, které musí expert podrobit bližší analýze, neboť není zcela jasné co znamenají
i tyto znalosti mohou být pro experta přínosem
•
„znalosti“, které jsou v rozporu se znalostmi experta
takováto pravidla, zachycující nejspíše nějaké nahodilé koincidence, expert patrně vyloučí;
ovšem pozor, kdoví, jestli se naopak nejedná o zásadní nový pohled na celou oblast.
Hodnocení deskriptivních znalostí nezávisle na aplikační oblasti se opírá především o různé numerické
parametry 1. Zde je ale třeba zdůraznit, že ne vše, co je v datech přesvědčivě prokázáno, má pro
experta význam (viz výše uvedené členění).
Pomocí pro hodnocení znalostí ve smyslu porozumění znalostem jsou pak různé vizualizační metody
letmo zmíněné v příslušné podkapitole. V této části se tedy budeme věnovat především vyhodnocením
znalostí pro úlohy typu klasifikace a predikce.
6.1
Testování modelů
Při hledání znalostí pro potřeby klasifikace se obvykle postupuje metodou učení s učitelem. Vychází
se tedy z toho, že jsou k dispozici příklady, o kterých víme, do které třídy patří. Metody evaluace jsou
pak založeny na testování nalezených znalostí na datech, na možnosti porovnat, jak dobře se nalezené
znalosti shodují s informací od učitele. Pro testování se nabízí celá řada variant podle toho, jaká data
použijeme pro učení a jaká pro testování:
1
V případě asociačních pravidel nás zajímá např. spolehlivost a podpora.
1
•
•
•
•
•
testování v celých trénovacích datech
křížová validace (cross-validation)
leave-one-out
bootstrap
testování na testovacích datech.
Testování v datech použitých pro učení (celá trénovací data) má nejmenší vypovídací schopnost o
tom, jak budou nalezené znalosti použitelné pro klasifikování nových případů. Často totiž může dojít k
„přeučení“ (overfitting), kdy nalezené znalosti vystihují spíše náhodné charakteristiky trénovacích dat
a neodhalí to podstatné, co lze použít pro generalizaci. Trénovací data tedy nejsou příliš vhodná pro
testování nalezených znalostí 2 a proto se obvykle používají data jiná. Otázkou je, jak taková data
získat. Jeden problém může být, že dat je k dispozici málo, jiný problém je, že je žádoucí, aby data
použitá pro testování se „podobala“ datům trénovacím 3. Oba problémy umožní řešit různé způsoby
výběru trénovacích a testovacích dat.
Při testování metodou křížová validace se data dopředu rozdělí např. na 10 částí tak, že vždy jedna
desetina se vyjme pro testování a zbylých devět desetin se použije pro učení. Celý tento postup se
zopakuje desetkrát a výsledek testování se zprůměruje. Proto se tomuto způsobu testování říká
desetinásobná křížová validace (10 fold cross-validation).
Variantou tohoto přístupu je metoda leave-one-out. Z dat, která jsou k dispozici se vyjme jeden příklad
pro testování a zbylá data se použijí pro učení. Toto se opakuje tolikrát, kolik příkladů máme. Vznikne
tedy n souborů znalostí, které se otestují na n příkladech 4. Výsledek testování dává odhad, jak by se
znalosti získané ze všech dostupných n příkladů chovaly při klasifikování příkladů neznámých.
V případě že počet příkladů n je veliký (tisíce, desetitisíce), vypadá představa n běhů algoritmu
poněkud absurdně. Naštěstí lze leave-one-out test implementovat efektivněji. Tak např. v algoritmu
ESOD [Ivánek, Stejskal, 1988] se využívá toho, že při výpočtu platnosti implikace Ant ⇒ Class pro
„celá“ data můžeme spočítat i platnosti pro případ, že z dat vyjmeme jeden příklad. Je-li
a
a+b
platnost implikace Ant ⇒ Class pro „celá“ data5, je
a
a+b-1
platnost implikace Ant ⇒ Class pro případ, že vyjmutý příklad splňoval Ant a nesplňoval Class, a
2
Výjimku z tohoto pravidla představuje metoda pesimistického odhadu na základě trénovacích dat kterou používá Quinlan
ve svém C4.5. Pro každý list stromu počítá počet všech pokrytých příkladů (analogie s hodnotou a+b ze čtyřponí tabulky)
a počet chybně pokrytých příkladů (analogie s hodnotou b). Výskyt chybné klasifikace pak chápe jako náhodný jev
(pozorovaný na vzorku příkladů pokrytých listem), který se řídí binomickým rozdělením. Pro zvolenou hladinu
významnosti CF pak spočítá horní (pesimistický) odhad pravděpodobnosti výskytu chybné klasifikace UCF(a,b). Odhad
počtu chybných klasifikací v uvažovaném listu je pak UCF(a,b) × (a+b). Součet těchto počtů přes všechny listy je pak
odhadem počtu chyb celého stromu.
3
V tom smyslu, že rozdělení příkladů do tříd v testovacích datech se řídí stejnými zákonitostmi jako rozdělení příkladů do
tříd v datech trénovacích, jinými slovy, že je stejný podíl tříd v obou vzorcích.
4
5
Jde tedy vlastně o n-fold cross-validation.
Vycházíme z toho, že implikace Ant ⇒ Class má v celých datech čtyřpolní tabulku
Class
¬Class
Ant
ar
b
¬Ant
cr
d
a-1
a+b-1
je platnost implikace Ant ⇒ Class pro případ, že vyjmutý příklad splňoval Ant i Class. Obě uvedené
varianty platnosti tedy pokrývají všech n podob trénovacích dat. Pokud je uvažujeme současně,
získáme při jednom průchodu daty informace potřebné pro všech n variant. Pro vlastní algoritmus
tvorby pravidel 6 to tedy znamená, že kromě implikací (a pravidel) pro plná data paralelně pracujeme
s implikacemi (a pravidly) zohledňujícími všechny možnosti pří leave-one-out testu.
Při metodě zvané bootstrap se příklady vybrané pro učení mohou opakovat. Na rozdíl od křížové
validace, kdy jeden příklad se použije buď pro učení nebo pro testování, zde se tentýž příklad může
pro učení vybrat několikrát. Máme-li opět k dispozici n příkladů, n-krát provedeme výběr
s navracením, abychom získali n příkladů pro učení. Pravděpodobnost, že příklad bude vybrán je 1/n,
pravděpodobnost že vybrán nebude je 1-1/n. Při n opakováních je pravděpodobnost, že příklad vybrán
nebude
n
⎛ 1⎞
limn→∞ ⎜1 − ⎟ = e −1 = 0.368 .
⎝ n⎠
Pro rozumě velká data se tedy vybere zhruba 63,2% příkladů pro učení a 36.8% příkladů pro testování.
V trénovací množině se budou příklady opakovat, to co zbude se použije při testování.
Tomuto poměru zhruba odpovídá náhodný výběr 75% příkladů pro učení a 25% příkladů pro
testování 7. Na rozdíl od bootstrapu se opět každý příklad použije jen jednou; pro učení nebo pro
testování. Na rozdíl od křížové validace se učení i testování provede jen jednou.
Ať tak či onak, cílem testování je určit, v kolika případech se klasifikátor shoduje s učitelem a
v kolika případech se dopustil chyb. Tyto údaje bývá zvykem zachycovat v tzv. matici záměn
(confusion matrix), viz Tab. 1. V matici jsou ve sloupcích uvedeny informace o tom, jak postupoval
při klasifikaci systém využívající nalezené znalosti, v řádcích informace o tom, jak to má (alespoň jak
učitel říká) být. Tab. 1 zachycuje situaci, kdy jde o klasifikaci do dvou tříd, „+“ a „-“ 8. TP (správně
positivní, true positive) je počet příkladů, které systém správně zařadil do třídy „+“, FP (falešně
positivní, false positive) je počet příkladů, které systém chybně zařadil do třídy „+“ (patří do třídy „-“)
TN (správně negativní, true negative) je počet příkladů, které systém správně zařadil do třídy „-“, a
FN (falešně negativní, false negative) je počet příkladů, které systém nesprávně zařadil do třídy „-“
(patří do třídy „+“).
Správné zařazení
+
-
Klasifikace systémem
+
TP
FN
FP
TN
Tab. 1 Matice záměn
6
Jde o algoritmus ESOD popsaný na jiném místě knihy.
7
Jedná se o empiricky doporučený poměr trénovacích a testovacích dat.
8
V případě více tříd je vhodnější zvětšit počet sloupců i řádků tak, aby odpovídal počtu tříd. Často nás totiž nezajímá pouze
prosté zjištění, že systém udělal chybu ale i to, kterou chybu udělal.
3
Matice záměn sleduje pouze počty správně a nesprávně zařazených příkladů. V řadě případů může být
důležitý i typ chyby, kterého se systém dopustil (FP vs. FN). Jestliže se systém, který hodnotí bonitu
klientů banky za účelem rozhodnutí o úvěru dopustí chyby, nastane buď situace, že doporučí půjčku
klientovi, který nesplatí, nebo situace, že zamítne půjčku klientovi, který by ji splatil. V prvním
případě tak banka prodělá, ve druhém případě banka nevydělá. První chyba je z hlediska banky jistě
závažnější 9. Skutečnost, že různé chyby jsou různě závažné, lze do testování (i učení) zahrnout
pomocí tzv. matice cen (cost matrix). Zde se uvede, jaká je cena za různé typy rozhodnutí; čím horší
chyba, tím vyšší cena 10. Při hodnocení znalostí se tedy nemusí brát do úvahy prostý počet chybných
rozhodnutí, ale i cena těchto chyb (ztráta, způsobená uživateli).
6.1.1
Celková správnost
Celková správnost (overall accuracy) – resp. úspěšnost (succesfulness), nebo komplementární celková
chyba (overall error) jsou nejjednodušší charakteristiky toho, jak jsou získané znalosti kvalitní.
Celková správnost se spočítá jako relativní počet správných rozhodnutí systému
TP + TN
Acc = TP + TN + FP + FN ,
celková chyba se spočítá jako relativní počet chybných rozhodnutí systému
FP + FN
Err = TP + TN + FP + FN .
Celková správnost by měla být v intervalu [Accdef , Accmax], kde Accdef je správnost systému, který
všchny příklady přiřadí k majoritní třídě 11 , a Accmax je maximální správnost dosažitelná pro daná
data 12.
V případě, že nás při testování zajímá jen počet správných resp. nesprávných rozhodnutí systému, je
Err = 1 – Acc.
Pokud bereme do úvahy i matici cen, výše uvedená rovnost neplatí a je vhodnější použít jako
kritérium celkovou chybu spočítanou tak, že se počty chybných rozhodnutí (FP, FN) vynásobí cenou
za příslušný typ chyby:
Err = FP * c(P,n) + FN * c(N,p),
kde c(P,n) je cena zařazení negativního příkladu do třídy „+“ a c(N,p) je cena zařazení pozitivního
příkladu do třídy „-“.
9
Ve statistice se v podobných situacích používá pojem chyba prvního druhu a chyba druhého druhu.
10
Správné rozhodnutí (TP, TN) má obvykle cenu 0.
11
Znalosti tohoto systému jsou např. tvořeny pouze implicitním (default) pravidlem.
12
V případě, že v datech nejsou kontradikce (příklady se stejnými hodnotami vstupních atributů které se liší v přiřazení ke
třídě), je tato správnost 1 (100%). V případě kontradikcí je tato správnost nižší neboť systém zařadí všechny stejně
popsané případy to téže třídy.
6.1.2
Správnost pro jednotlivé třídy
V případě, že třídy jsou v datech rozloženy výrazně nerovnoměrně (např. pouze 5% klientů banky je
podezřelých, zbylých 95% je v pořádku), bude celková správnost dávat zkreslený obraz o nalezených
znalostech. 95% celková správnost může znamenat, že jsme nerozpoznali žádného podezřelého klienta
(95% je implicitní správnost), nebo že jsme rozpoznali všechny podezřelé klienty (a dopustili se chyb
při rozpoznávání klientů spolehlivých). V takové situaci je vhodnější sledovat správnost (resp. chybu)
pro jednotlivé třídy:
TP
Acc+ = TP + FP
TN
Acc- = TN + FN
6.1.3
Přesnost a úplnost
Přesnost a úplnost (precision and recall) jsou pojmy používané v oblasti vyhledávání informací.
Hledáme-li např. na webu nějaké dokumenty týkající se určitého tématu (třeba pomocí vyhledávače
jako je altavista), pak :
1. ne všechny nalezené dokumenty se týkají tématu,
2. určitě jsme nenalezli vše co je o tématu k dispozici.
Přesnost nám říká, kolik nalezených dokumentů se skutečně týká daného tématu a úplnost nám říká,
kolik dokumentů týkajících se tématu jsme nalezli. Tyto míry shody lze použít i pro hodnocení
znalostí:
TP
Přesnost = TP + FP
TP
Úplnost = TP + FN
Jak je vidět, je přesnost totéž jako správnost pro danou třídu. Někdy se používá souhrnná
charakteristika F-míra
2TP
2 * přesnost * úplnost
F = přesnost + úplnost = 2TP + FP + FN
6.1.4
Sensitivita a specificita
Sensitivita a specificita (sensitivity a specificity) jsou charakteristiky převzaté z mediciny. V případě
nasazení nějakého nového léku nás zajímá, u kolika nemocných pacientů lék zabere (sensitivita), a zda
lék zabírá pouze na danou chorobu (specificita). Z matice záměn se tyto hodnoty spočítají jako:
TP
Sensitivita = TP + FN
Specificita =
5
TN
TN + FP
A opět můžeme pozorovat shodu používaných kritérií; sensitivita je totéž co úplnost. Sensitivita a
specificita se buď uvádějí samostatně nebo jako vzájemný součin obou čísel.
6.1.5
Spolehlivost klasifikace
V [Berka, 1997] jsme uvedli jiný pohled na hodnocení klasifikátoru založený na meta učení. Meta
učení (meta learning) je postup, při kterém se na výsledky klasifikátorů opětovně použije nějaký učící
se algoritmus. Koncept meta učení nalezneme v této kapitole ještě několikrát. Zde konkrétně bylo
meta učení použito pro určení spolehlivosti klasifikace.
Celý postup je znázorněn na Obr. 1. Z původních trénovacích dat se vytvoří model, který se použije
pro klasifikaci těchto trénovacích dat i pro testování na datech testovacích (krok klasifikace). V kroku
verifikace se nejprve vytvoří nová trénovací a testovací data tak, že se k původním datům přidá nový
binární atribut vyjadřující, zda při klasifikaci došlo nebo nedošlo ke shodě se skutečností. Pro nová
trénovací data vytvoříme model, který bude tentokrát pro daný příklad predikovat zda dojde ke shodě
(atribut shoda je cíl, původní vstupní atributy zůstávají stejné). Model pak otestujeme na nových
testovacích datech.
Při použití tohoho přístupu při klasifikaci nových příkladů klasifikačním modelem příklad zařadíme
do třídy a verifikačním modelem určíme spolehlivost tohoto přiřazení.
Obr. 1 Určení spolehlivosti klasifikace
Doposud jsme hodnotili znalosti na základě jednoho testování; pomocí jednoho čísla13. Komplexnější
popis chování modelu nám mohou dát následující analýzy. Při hodnocení na základě více testů může
jít opět o hodnocení jednoho modelu (křivka učení, lift chart) nebo o hodnocení více modelů14 (ROC,
DEA). Všechny tyto metody používají grafické znázornění výsledků testování.
6.1.6
Křivka učení
Křivka učení (learning curve) dává do souvislosti počet příkladů v trénovací množině a správnost
klasifikace (Obr. 2). Vychází se z předpokladu, že čím více příkladů je k dispozici ve fázi učení, tím
budou nalezené znalosti přesnější. Pro různé počty příkladů tak dostaneme různé hodnoty správnosti
při testování (Tab. 2). Testování se často provádí opakovaně, takže kromě průměrné hodnoty
správnosti Acc ’ získáme ještě její chybu (třetí sloupec v Tab. 2). Tato chyba se obvykle počítá jako
SAcc
,
n
kde
Počet příkladů
15
30
45
60
75
90
105
120
135
S 2Acc
∑ (Acc
=
i
i
- Acc ) 2
n -1
Prům.Správnost
79.56%
92.00%
93.14%
94.67%
93.07%
93.00%
95.11%
92.00%
93.33%
chyba
+- 5.69%
+- 2.07%
+- 0.70%
+- 0.42%
+- 1.54%
+- 1.62%
+- 1.30%
+- 2.26%
+- 2.98%
Tab. 2 Data pro křivku učení
Obr. 2 Křivka učení
13
V případě např. desetinásobné křížové validace jednomu číslu odpovídá průměrná hodnota z výsledků na deseti maticích
záměn.
14
Zvolený učící se algoritmus může mít celou řadu parametrů, které ovlivňují nalezeneé znalosti. Nejmarkantněji je to vidět
u neuronových sítí, ale můžeme to pozorovat i u rozhodovacích stromů a pravidel.
7
Jistou analogií tohoto přístupu je křivka učení používaná při učení neuronových sítí jako indikace
toho, kdy je možno učení ukončit. Zde se jedná o závislost správnosti na počtu iterací (průchodů týmiž
trénovacími daty) – viz Obr. 3.
Obr. 3 Závislost správnosti na počtu iterací
6.1.7
Křivka navýšení
Křivka navýšení (lift curve) se často používá v marketingu. Vezměme si situaci, kdy je třeba poslat
klientům nabídku nějakého produktu. Ze zkušenosti víme, že na takovou nabídku odpoví velice málo
(řekněme 1%) oslovených zákazníků. To znamená, že většina dopisů s nabídkou je odeslána zbytečně.
Při tvorbě modelu bychom tuto skutečnost chtěli vzít v úvahu. To umožní křivka navýšení, která dává
do souvislosti podíl respondentů, kteří odpověděli (TP) s podílem odeslaných dopisů (TP+TN+
FP+FN). Jak takovou křivku vytvořit? Lze to pouze u modelů, které neprovádějí pouze binární
klasifikaci (ano/ne) ale klasifikace je doprovázena numerickou hodnotou, která vyjadřuje, jak moc si
klasifikátor věří při svém rozhodnutí pro daný příklad (pravděpodobnost, váha). Lze tedy křivku
navýšení vytvořit např. pro neuronové sítě, bayesovské klasifikátory nebo KEX.
Nejprve seřadíme příklady použité při testování sestupně podle váhy klasifikace. U každého příkladu
máme samozřejmě k dispozici informaci o tom, do které třídy patří (Tab. 3). Pak pro libovolný úsek
setříděných příkladů počínaje příkladem klasifikovaným s nejvyšší vahou vytvoříme dílčí matici
záměn s hodnotami TP’, TN’, FP’ a FN’. Hodnoty TP‘/TP a (TP‘ + TN‘ + FP‘ + FN‘)/(TP +TN + FP +
FN) 15 pak vyneseme do grafu. Křivka navýšení vždy prochází bodem [0,0] (nepošleme-li žádný
dopis, nebude žádná odpověď) a [1,1] (pošleme-li dopisy všem, zachytíme všechny respondenty).
Model bude tím lepší, čím bude křivka navýšení ležet nad diagonálou reprezentující náhodný výběr.
Z křivky navýšení uvedené na Obr. 4 lze vyčíst, že pošleme-li nabídku 40% nejperspektivnějším
klientům, oslovíme 80% všech respondentů. Dosáhli jsme tedy dvojnásobného navýšení odezvy
klientů ve srovnání s náhodným výběrem 40% adresátů.
15
Hodnoty TP, TN, FP a FN odpovídají celým testovacím datům.
Pořadí
1
2
3
4
5
…
skutečná třída
+
+
+
+
...
predikce pro “+”
0,95
0,93
0,93
0,91
0,88
…..
Tab. 3 Data pro křivku navýšení
Obr. 4 Křivka navýšení
V případě, že máme k dispozici informace o cenách za odeslání nabídky i o cenách nabízeného
produktu, můžeme křivku navýšení převést na křivku návratnosti investic (ROI). Z této křivky je
přímo vidět jak se mění náš zisk v závislosti na počtu oslovených klientů (Obr. 5)16
Obr. 5 Křívka návratnosti investic
16
Celý přiklad je převzat z demo dat k systému Clementine.
9
6.1.8
Křivka ROC
Křivka ROC (ROC curve) byla převzata pro evaluaci modelů z oblasti radiotechniky17 poměrně
nedávno [Provost, Fawcett, 1997]. Tato křivka dává do souvislosti podíl TP s podílem FP:
TP
TP% = TP + FN
FP
FP% = FP + TN
Uvedené charakteristiky již známe; TP% = Sensitivita, FP% = 1 – Specificita. Používá se tedy i
kritérium TP% * (1 – FP%).
ROC křivku lze použít u modelů, které klasifikaci doprovázejí váhou resp. pravděpodobností. Křivku
vytvoříme tak, že budeme měnit práh při kterém bude výsledek klasifikace interpretován jako třída
‘+‘ 18. Bodu [0,0] (žádná predikce třídy +) odpovídá práh 1, bodu [1,1] (všechny příklady zařazeny do
třídy ‘+’) odpovídá práh 0. Změnou prahu lze simulovat chování modelu v případě změny poměru
mezi počty příkladů obou tříd i změny cen za chybnou klasifikaci, ROC křivka tedy dává obraz o
chování klasifikátoru bez ohledu na rozdělení tříd a na cenu chyb. Poznamenejme, že je žádoucí se
v grafu pohybovat „vlevo nahoře“, tedy blízko bodu [0,1], který odpovídá bezchybné klasifikaci.
Obr. 6 ROC křivka
Variantu tohoto pohledu nalezneme v [Berka, Pelikán, 1997]. Zde s přímo sleduje, jak se mění celková
správnost klasifikace v závislosti na prahu (Obr. 7 vlevo). Opět se tedy předpokládá klasifikace v celé
škále [0,1]. Jistý rozdíl oproti ROC křivce zde ale přece jenom je; model (v tomto případě KEX)
může odmítnout rozhodnutí. To se stane v případě, že predikovaná váha leží v intervalu [1-práh, práh].
S rostoucím prahem tedy klesá počet klasifikovaných příkladů (Obr. 7 vpravo).
17
ROC znamená receiver oerating characteristic, tedy pracovní charakteristika přijímače.
18
ROC křivku můžeme tedy vytvořit podobně jako křivku navýšení; na základě volby vzorku ze seznamu příkladů
uspořádaného podle výsledků klasifikace (predikce ‘+’).
Obr. 7 Závislost správnosti a počtu rozhodnutí na prahu
6.1.9 DEA analýza
DEA analýza (DEA analysis, data envelope analysis) je metoda používaná v ekonometrii. Při testování
modelů ji můžeme použít, podobně jako ROC křivky, pro volbu optimálního nastavení parametrů
učícího se algoritmu.
6.1.10 Numerické predikce
Zatím jsme se zabývali situací, kdy cílem modelu je klasifikovat příklady do tříd. V případě numerické
predikce19 se jako kritérium správnosti používají např. střední kvadratická chyba (mean-squared error,
MSE), odmocnina ze střední kvadratické chyby (root mean-squared error, RMSE), střední absolutní
chyba (mean absolute error, MAE), relativní kvadratická chyba (relative squared error, RSE), nebo
korelační koeficient ρ.
MSE =
(p1-s1)2 + …+ (pn-sn)2
n
RMSE =
MAE =
RSE =
ρ=
Sps
,
Sp 2 Ss2
(p1-s1)2 + …+ (pn-sn)2
n
|p1-s1| + …+ |pn-sn|
n
(p 1 − s 1 ) 2 + … + (p n − s n ) 2
(s 1 − s ) + … + (s n − s )
kde S ps
2
∑ (p
=
i
i
2
- p )(s i - s )
n -1
,
kde s =
1
n
∑ (p - p )
=
∑s
i i
2
,
S 2p
i
i
n -1
∑ (s - s )
=
2
,
Ss2
i
i
n -1
Ve výše uvedených vzorcích je pi predikovaná hodnota a si skutečná hodnota pro i-tý přiklad ze
souboru n příkladů tvořících trénovací data.
19
Při numerické predikci může být cílem např. určit budoucí cenu akcií. Nespokojíme se tedy pouze s klasifikací „vzrůst
ceny“ vs. „pokles ceny“.
11
6.2
Vizualizace
Přestože vizualizace hraje důležitou roli především ve fázi porozumění datům resp. při interpretaci
deskriptivních znalostí, můžeme se s ní setkat i při hodnocení modelů určených pro klasifikaci. Jako
na jiných místech procesu dobývání znalostí, tak i zde jde o to umožnit expertovi lépe porozumět
tomu, co se děje.
6.2.1
Vizualizace modelů
Většina systémů pro dobývání znalostí z databází klade velký důraz na vizualizaci. Ta se projevuje i
při vizualizaci modelů. Příkladem může být různý způsob znázornění rozhodovacího stromu od
nejjednoduššího textového (systém Weka) až po trojrozměrné “mrakodrapy” okolo kterých je možno
kroužit jako v letovém simulátoru (systém MineSet). Podoba rozhodovacích stromů je uvedena
v kapitole věnované jednotlivým systémům; zde tuto věc zmiňujeme jen pro úplnost.
Jiným příkladem je tzv. web uzel v systému Clementine, který zobrazuje asociace mezi hodnotami
atributů. Síla čáry odpovídá síle vztahu (Obr. 8 převzatý z demo dat k systému).
Obr. 8 Web uzel
Vizualizovat můžeme i jednotlivá pravidla. Obr. 9 ukazuje koláčový graf odpovídající pravidlu
IF nezamestnany(ne) THEN uver(ano)
Hodnoty v grafu jsou převzaty z kontingenční tabulky, která má pro naše demonstrační data podobu
uver(ano)
nezamestnany(ne)
nezamestnany (ano)
uver(ne)
5
3
8
1
3
4
6
6
12
Uvedený graf názorněji ukazuje, že platnost pravidla 5/6 je větší než relativní četnost třídy úvěr(ano)
v datech (ta je rovna 8/12) a že tedy toto pravidlo dobře charakterizuje bonitní klienty.
Obr. 9 Vizualizace jednoho pravidla
6.2.2
Vizualizace klasifikací
Michalski [Michalski, 1978] navrhl použití tzv. obecných logických diagramů (general logic
diagrams) pro zobrazování výsledků klasifikace pro jednotlivé příklady. Tento způsob je použitelný
(tj. srozumitelný) jen pro relativně malý počet atributů. V tabulce20, která zachycuje všechny možné
hodnoty jednotlivých atributů (a tedy i všechny možné příklady), se znázorní rozhodnutí systému
(výsledek klasifikace do tříd barvou), resp. chyby při klasifikaci (shoda rozhodnutí systému
s informací od učitele jako kolečko, neshoda jako křížek). Obr. 10 ukazuje způsob implementace
v knihovně programů pro strojové učení MLC++ [Kohavi, 1994].
20
Tato tabulka připomíná Karnaghovu mapu používanou při syntéze logických obvodů.
13
Obr. 10 Obecný logický diagram
Propojí-li se systém pro dobývání znalostí s geografickým informačním systémem (GIS), získáme
přírozenou možnost vizualizace např. tak, že v mapě zobrazíme objekty, které splňují nějakou
vlastnost, nebo které splňují nějaký vztah. Obr. 11 ukazuje příklad vizualizace sídel na jižní Moravě,
vzhledem k jednomu asociačnímu pravidlu (tedy k jedné čtyřpolní tabulce) nalezenému systémem
KEX.21
Obr. 11 Vizualizace asociací
21
O KEXu se píše na jiném místě. Tato ukázka je ze společného projektu s firmou TERPLAN [Berka a kol, 1991].
6.3
Porovnávání modelů
Máme-li k dispozici více algoritmů pro dobývání znalostí, můžeme je použít na tatáž data. Naskýtá se
pak otázka, který z modelů je nejlepší. Odpověď se opět hledá na základě provedeného testování
jednotlivých modelů. Výsledky testování se pak navzájem porovnávají.
6.3.1
T-test
Dvouvýběrový t-test je statistický test, který umožňuje porovnávat dvě sady čísel, tak, že zjišťuje, zda
se od sebe statisticky významně liší jejich průměry. Základem t-testu je statistika t počítaná jako
t( x , y ) =
x-y
S( x, y ) 1/m + 1/n
,
kde x =
1
m
∑x
i i
,
y=
1
n
∑y
i i
a
S2(x,y) =
(m-1) Sx2 + (n-1) Sy2
,
m+n-2
přičemž Sx a Sz se spočítají analogicky jako Sp a Ss uvedené v odstavci o numerických predikcích.
V našem případě budou oněmi sadami čísel správnosti (resp. chyby) stanovené např. násobnou
křížovou validací pro dva různé modely. Model A bude lepší než model B, pokud t-testem zjistíme, že
jeho průměrná správnost je signifikantně vyšší, tedy že
t(AccA, AccB) > t(1- α/2, m + n –2) ,
kde t(1- α/2, m + n –2) , je (1- α/2)-kvantil Studentova t rozložení s m + n – 2 stupni volnosti
[Havránek, 1993].
6.3.2 ROC křivky
ROC křivky umožňují zachytit chování modelu (klasifikátoru) bez ohledu na rozdělení tříd a cen.
Očekávaná cena klasifikace modelu, který odpovídá bodu [TP, FP] křivky je
Cost = p(p) * FP% * c(P,n) + p(n) * FN% * c(N,p),
kde p(p) a p(n) jsou apriorní pravděpodobnosti (relativní četnosti) pozitivních a negativních příkladů,
c(P,n) a c( N,p) jsou ceny za chybnou klasifikaci, a FP% a FN% jsou poměry správně positivních a
správně negativních klasifikací. Dva body [TP1, FP1], [TP2, FP2] budou odpovídat stejně kvalitním
modelům, pokud
TP2 - TP1 p(n)c(P,n)
FP2 - FP1 = p(p)c(N,p)
Tato rovnice definuje směrnici linie stejného výkonu (iso-performance lines); všechny modely ležící
na jedné linii mají stejné očekávané ceny klasifikace.
Obr. 12 ukazuje ROC křivky pro tři modely. Je zřejmé, že model C je nejhorší, protože jeho křivka
leží všude „pod“ křivkami zbývajících modelů. Jiné je to pro modely A a B. Při některých strategiích
rozhodování bude vhodnější model A (minimalizujeme poměr FP% i za cenu nižšího poměru TP%), při
jiných strategiích bude vhodnější model B (maximalizujeme poměr TP% i za cenu vyššího poměru
FP%). Pro hodnoty směrnic linií stejného výkonu v intervalu [0,1] (tedy např 0.1 pro p(n)/p(p)=1 a
15
c(P,n)/c(N,p)=0.1) bude lepši model B, pro hodnoty směrnic v intervalu [1,∞] (např. 2 pro
p(n)/p(p)=10 a c(P,n)/c(N,p)=0.2) bude lepší model A.
Jak tedy nalézt metodu, která bude optimální pro danou strategii (pro danou matici cen resp. poměr
tříd)? K tomu se použije tzv. konvexní obal (convex hull) ROC prostoru, který “obepíná” dané ROC
křivky. Klasifikátor, který bude ležet na tomto obalu bude (pro danou strategii) optimální. Lze totiž
ukázat, že neleží-li bod ROC křivky na konvexním obalu, lze pro libovolnou rodinu linií stejného
výkonu (tedy pro linie se stejnou směrnicí) nalézt bod, který leží na linii se stejnou směrnici, ale s
větším průsečíkem s osou TP%.
Vidíme tedy, že pro určité strategie nabude ani model A ani model B optimální, protože příslušné
ROC křivky leží pod konvexním obalem (tato část je v grafu vyznačena šedou barvou). Zlepšení
klasifikace lze pak dosáhnout kombinací obou modelů.
A
B
C
Obr. 12 ROC křivky s konvexním obalem
6.3.3
Occamova břitva
V případě shody správnosti (chyby) vstupují do hry další kritéria. Nejznámějším je tzv. Occamova
břitva. Jedná se filosofický předpoklad, který říká, že nejlepší vědecká teorie je ta nejjednodušší, která
popisuje všechna fakta. Převedeno na porovnávání modelů jde o kritérium, které říká, že lepší je menší
model (méně pravidel, menší strom apod.). V teorii učících se systémů má tento předpoklad
jednoduchosti podobu principu minimální délky popisu (minimum description length, MDL) o kterém
byla již zmínka v souvislosti s bayesovským klasifikátorem.
6.4
Volba nejvhodnějšího algoritmu
Vzhledem k tomu, že neexistuje algoritmus, který by předčil ostatní na libovolných datech22, dostává
se do popředí otázka jak dopředu poznat, který algoritmus zvolit pro danou úlohu. Odpověď můžeme
hledat na základě znalosti silných a slabých stránek jednotlivých algoritmů, nebo experimentálně.
Mezi známé charakteristiky algoritmů, které můžeme brát do úvahy patří např.
• Rozdíl mezi způsobem reprezentace příkladů (hodnoty atributů nebo relace),
• rozdíl mezi vyjadřovací silou jednotlivých algoritmů (rozhodovací stromy a pravidla rozdělují
prostor atributů rovnoběžně s osami, neuronové sítě nebo diskriminační funkce naleznou i
diagonální hranici mezi třídami),
• schopnost práce s numerickými atributy (některé algoritmy vyžadují pouze kategoriální
atributy),
• schopnost práce se zašuměnými a chybějícími daty (vyhození vs. extrapolace),
• schopnost práce s maticí cen (ve fázi učení, ve fázi testování, vůbec ne),
• předpoklad nezávislosti mezi atributy (např. naivní Bayesovský klasifikátor),
• ostrá vs. neostrá klasifikace (jen indikátor třídy nebo i pravděpodobnost či váha klasifikace).
K empirickým studiím vhodnosti jednotlivých algoritmů na různé typy dat patří dva rozsáhlé
výzkumné projekty celoevropského rozsahu, STATLOG a METAL.
6.4.1 STATLOG
V letech 1991-1994 se v rámci výzkumného programu Evropského společenství řešil projekt23, jehož
cílem bylo komparativní testování a vyhodnocení různých učících se algoritmů na rozsáhlých
aplikacích v oblasti klasifikace a predikce [Michie a kol., 1994]. V rámci projektu bylo porovnáváno
okolo 20 různých algoritmů na zhruba 20 různých datových souborech. Cílem bylo zjistit, na jaké typy
dat se hodí ten který algoritmus. Jednotlivé datové soubory byly popsány souborem24 jednoduchých
charakteristik, statistických charakteristik a charakteristik z oblasti teorie informace. Vznikla tak jakási
„metadata“ (data o datech) která byla použita při následné analýze.
Pro každý datový soubor se (běžnými metodami testování) zjistilo, jaké dávají jednotlivé algoritmy
výsledky (správnost, chyba). Byla tedy k dispozici informace, které algoritmy jsou na daná data
vhodné (dávají malou chybu) a které jsou nevhodné. Tato informace byla (jakožto cílový atribut)
přidána k metadatům; vznikla tak trénovací množina, na kterou byl nasazen algoritmus C4.525.
Výsledkem byla řada pravidel typu: „If charakteristiky dat jsou CH then použij algoritmus A“.
Příkladem může být pravidlo
IF počet příkladů < 6435 AND šikmost > 0.57 THEN použij CART
K souhrnným výsledkům patří:
22
Tato skutečnost je známa pod názvem no free lunch teorem.
23
ESPRIT projekt č. 5170, známý pod akronymem STATLOG.
24
Mezi jednoduché charkteristiky patří počet příkladů, počet atributů, počet tříd, počet binárních atributů. Mezi statistické
charakteristiky patří parametry rozdělení dat jako šikmost, špičatost nebo různé korelační charakterisitky (střední korelace
atributů, první kanonická korelace). K charakteristikám z teorie informace patří entropie třídy, střední entropie atributů,
střeení vzájemná informace třídy a atributů nebo poměr signál/šum.
25
Důvodem volby tohoto algoritmu byla snadná interpretovatelnost vytvořených rozhodovacích stromů i skutečnost, že C4.5
si v testech na vlastních datech vedl poměrně dobře.
17
•
•
•
•
•
pro rozsáhlá data se hodí diskriminační analýza (lineární, kvadratická),
není velký rozdíl mezi „obyčejnou“ a logistickou diskriminační analýzou,
na rozsáhlých datech je nejpomalejší metoda k nejbližších sousedů,
použité algoritmy na tvorbu rozhodovacích stromů se chovaly zhruba stejně; nezdá se tedy, že
by nějak zvlášť záleželo na kritériu pro volbu větvení,
neuronové sítě dávaly výborné výsledky u dat, kde se nepoužívala matice cen.
Řešitelé projektu STATLOG správně upozorňují na různé možné příčiny odlišností v správnosti
jednotlivých algoritmů na daných datech:
• různá vhodnost algoritmů jako takových,
• různě vhodná implicitní nastavení parametrů jednotlivých modelů,
• různá zkušenost uživatelů s laděním parametrů,
• vliv předzpracování dat (např. diskretizace do různých intervalů).
6.4.2 METAL
Projekt METAL (Meta Learning) volně navazuje na projekt STATLOG. Tento projekt, řešený jako
ESPRIT projekt č. 26357 v rámci 5. programu, byl zahájen v roce 2000. Cílem projektu je pomoci
běžnému uživateli s volbou vhodné metody strojového učení i s volbou metod pro předzpracování dat.
V současné době se práce zaměřily na otázku řazení klasifikátorů. Zatím je navrženo několik metod
využívajících správnosti a doby výpočtu pro hodnocení klasifikátorů testovaných na různých datech
[Brazdil, Soares, 2000]:
• Průměrné pořadí (na základě uspořádání všech klasifikátorů pro jednotlivé datové soubory)
• Poměr úspěšnosti (na základě vyhodnocení dvojic klasifikátorů)
• Významní vítězové (na základě vyhodnocení dvojic klasifikátorů)
6.5
Kombinování modelů
Možností jak zlepšit výsledky dosažené jednotlivými modely je jejich vzájemná kombinace.
Nejběžnějším způsobem je kombinovat rozhodnutí z více modelů do výsledného závěru některou
z variant hlasování. Přehled různých metod lze nalézt v [Diettrich, 2000] nebo [Bauer, Kohavi, 1999].
Při metodě zvané bagging (bootstrap aggregating) mají všechny modely rovný hlas. Předpokládejme
použití jednoho algoritmu (např. rozhodovacích stromů). Pro potřeby učení se z daných dat vytvoří
několik stejně velkých trénovacích množin pomocí náhodného výběru s opakováním (viz dříve
zmíněná metoda bootstrap). Učení probíhá na jednotlivých trénovacích množinách nezávisle.
Výsledné modely (rozhodovací stromy) se pak v procesu testování nechají hlasovat o přiřazení
testovaného příkladu ke třídě.
Při metodě zvané boosting se postupně vytvářejí modely se stále větší váhou hlasu. Každý nový model
je ovlivněn modely vytvořenými v předcházejících krocích. Ve fázi učení se nový model zaměřuje na
ty příklady, které se nepodařilo zatím správně klasifikovat. Na počátku (při vytváření prvního modelu)
mají všechny příklady stejnou váhu. Na základě výsledků klasifikace se váhy příkladů změní; u
správně klasifikovaných se váha sníží, u chybně klasifikovaných se váha zvýší. To umožní od sebe
odlišit „jednoduché“ příklady (ty s nižší vahou) a „složité“ příklady (ty s vyšší vahou). Celý postup se
několikrát opakuje. Ve fázi klasifikace jednotlivé modely váženě hlasují o zařazení příkladu do třídy.
Obr. 13 ukazuje podobu tohoto algoritmu známou jako AdaBoost ([Shapire, 1999]). Podobně jako u
předcházející metody i zde se předpokládá použití stejného algoritmu u všech modelů.
AdaBoost algoritmus
učení
1. Přiřaď stejnou váhu všem trénovacím příkladům,
2. Pro každou iteraci (vytvářený model)
2.1.
Vytvoř model
2.2.
Spočítej chybu err na vážených datech
2.3.
If err=0 nebo err>0.5 konec
2.4.
Pro každý příklad
If klasifikace je správně then váha w=w*err/(1-err)
2.5.
Normalizuj váhy příkladů (součet nových vah stejný jako součet původních)
klasifikace jednoho příkladu
1. Přiřaď váhy 0 všem třídám
2. Pro každý model
Přiřaď třídě určené modelem váhu w=w-log(err/1-err)
3. Vydej třídu s nejvyšší váhou
Obr. 13 Algoritmus AdaBoost
V případě kombinování modelů vzniklých na základě různých algoritmů vyvstává jeden základní
problém. Kterému modelu více věřit. Hlasování klasifikátorů má totiž smysl jen tehdy, jestliže
všechny klasifikátory dávají srovnatelné výsledky. Pokud jsou ale některé modely výrazně horší,
jejich zahrnutím do hlasování získáme horší výsledky než při použití jednoho lepšího modelu.
Otázkou jak rozpoznat spolehlivost jednotlivých modelů se zabývá metoda zvaná stacking (stacked
generalization). Zavádí se zde koncept meta učení, což je použití metod učení pro zjištění, jak nejlépe
kombinovat jednotlivé modely. Tedy při meta učení se provádí učení z výsledků jednotlivých
klasifikátorů. Vstupem do uvedené metody jsou výsledky klasifikace jednotlivými systémy. Počet
vstupních atributů pro meta učení (pro model na první úrovni) je tedy dán počtem modelů na nulté
úrovni (základní klasifikátor, base classifier); v nejjednodušším případě může být pro každý základní
klasifikátor jeden atribut (indikátor predikované třídy), složitější varianta může brát z každého
základního klasifikátoru tolik atributů, kolik je tříd (např. pravděpodobnost zařazení objektu do těchto
tříd). Cílovým atributem pro meta učení je skutečná třída. Výsledkem meta učení tedy jsou znalosti o
tom, který základní klasifikátor se má použít (např. vždy věř modelu A a ignoruj model B). Klasifikace
nových příkladů probíhá tak, že nejprve je příklad klasifikován základními klasifikátory a na základě
těchto výsledků vydá model na první úrovni výsledné rozhodnutí. Schéma tohoto přístupu podle
[Chan, Stolfo, 1993] je uvedena na Obr. 14.
Obr. 14 Obecné schéma metaklasifikace
19
Literatura
[Bauer, Kohavi, 1999] Bauer,E., and Kohavi,R.: An Empirical Comparison of Voting Classification
Algorithms: Bagging, Boosting, and Variants. Machine Learning, 36(1/2):105-139, 1999.
[Berka, 1993] Berka,P.: Vybrané znalostní systémy, SAK, SAZE, KEX. Skripta VŠE, Praha 1993, 245s.
[Berka, 1997] Berka,P.: Recognizing Reliability of Discovered Knowledge. In: (Komorowski, Zytkow eds.)
Proc. Principles of Data Mining and Knowledge Discovery PKDD'97, LNAI 1263, Springer, 1997, 307-314
[Berka a kol., 1991] Berka,P. – Ivánek,J. - Jirků,P. - Stejskal,B.: Knowledge Acquisition from Data - a Tool for
Regional Planning. In: UNIDO/CSFR Workshop of Interactive Decision Support Systems to Industrial and
Territorial Planning, Bratislava, 1991
[Berka, Pelikán, 1997] Berka,P. – Pelikán,E.: Data
Computers in Finance and Economics. 1997, 115-128.
Mining Methods in Prediction. In: PASE'97,
[Brazdil, Soares, 2000] Brazdil,P. – Soares,C.: A Comparison of Ranking Methods for Classification Algorithm
Selection. In: (Mantaras, Plaza eds.) Proc. European Conf. On Machine Learning ECML2000, LNAI 1810,
Springer 2000, 63-74.
[Diettrich, 2000] Dietterich,T.G.: An Experimental Comparison of Three Methods for Constructing Ensembles
of Decision Trees: Bagging, Boosting, and Randomization. Machine Learning, 40(2):139-158, 2000.
[Havránek, 1993] Havránek,T.: Statistika pro biologické a lékařské vědy. Academia, 1993. ISBN 80-200-00801.
[Chan, Stolfo, 1993] Chan,P.K. - Stolfo,S.J.: Experiments on Multistrategy Learning by Meta-Learning. In:
Proc. 2nd Int. Conf. on Information and Knowledge Management, 1993.
[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.
[Kohavi, 1994] Kohavi,R.: MLC++. A Machine Learning Library in C++, Tech.Rep. CS229B, Stanford Univ.
1994.
[Michalski, 1978] Michalski,R.S.: A Planar Geometric Model for Presenting Multidimensional Discrete Spaces
and Multiple-valued Logic Functions. Tech. Rep. UIUCDCS-R-78-897, Univ. of Illinois, 1978.
[Michie a kol., 1994] Michie,D. – Spiegelhalter,D.J. – Taylor.: Machine Learning, Neural and Statistical
Classification. Ellis Horwood, 1994, ISBN 0-13-106360-X.
[Provost, Fawcett, 1997] Provost,F. – Fawcett,T.: Analysis and Visualization of Classifier Performance:
Comparison under Imprecise Class and Cost Distributions. In: Proc. KDD-97, AAAI Press, 1997, 43-48.
[Shapire, 1999] Shapire,R.: Theoretical Views of Boosting and Applications. In: Proc.10th Int. Conf. on
Algorithmic Learning Theory.
[Witten, Frank, 1999] Witten,I.H. – Frank,E.: Data Mining. Practical Machine Learning Tools and Techniques
with Java Implementations. Morgan Kaufman, 1999, ISBN 1-55860-552-5.

Podobné dokumenty

Sborník "Banka dat a modelů ekonomiky ČR"

Sborník "Banka dat a modelů ekonomiky ČR" parametrů modelu a data včetně předpovědí s krátkým horizontem. Dílčími úkoly byla podpora výuky statistiky a využívání statistického softwaru. Na serveru BADAME je zrcadleno několik webových učebn...

Více

Otevřít PDF

Otevřít PDF Coca-Cola Light

Více

Ekonomické modely

Ekonomické modely vyvolané náklady zúčastněných subjektů. Výstupy z této analýzy byly využity při tvorbě národohospodářského modelu všeobecné rovnováhy, který umožňuje predikovat nákladovou náročnost odpadového hosp...

Více

Forum Statisticum Slovacum, Number 6/2014

Forum Statisticum Slovacum, Number 6/2014 s krízou znovu stal častým predmetom analýz, ktoré sú zvyčajne zamerané na odlišnosti vo vývoji. V prípade krajín, ktoré využívajú spoločnú menu môžu práve tieto odlišnosti negatívne pôsobiť na men...

Více

8. Systémy pro dobývání znalostí z databází

8. Systémy pro dobývání znalostí z databází hlediska je třeba zajistit správné začlenění nového programu do sekvence (streamu). Program tedy musí umět číst data a parametry ze sekvence a zapisovat do sekvence své výsledky. Přenesení proveden...

Více

5.1 Rozhodovací stromy

5.1 Rozhodovací stromy poznat, kdy lze nelistový uzel nahradit listem. K rozhodnutí lze použít buď nová data (tzv. validační), která se použijí pro testování uvažované redukce, nebo se vhodnost redukce odhaduje na základ...

Více