Základy vytěžování dat předmět A7Bb36vyd – Vytěžování dat Filip Železný, Miroslav Čepek, Radomír Černoch, Jan Hrdlička katedra kybernetiky a katedra počítačů ČVUT v Praze, FEL
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Testování a kombinování modelů
Odkaz na výukové materiály: https://cw.felk.cvut.cz/doku.php/courses/a7b36vyd/moduly/start (oddíl 6)
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Vytěžování dat, přednáška 11: Testování modelů Miroslav Čepek
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Fakulta elektrotechnická, ČVUT
1 / 31
Testování modelů
Chyba modelu
I
Jak zjistíme jestli je vytvořený model dobrý a případně jak moc je dobrý?
I
Musíme jej vyzkoušet.
I
Zkusíme aplikovat model na data a podíváme se, jak model funguje...
I
Ale na jaká data?
I
Ideálně na všechny vstupní vzory, které se kdy mohou objevit (a ideálně i se stejnou distribucí).
I
Ale takových je nekonečně mnoho. Ale máme (snad) reprezentativní vzorek – trénovací množinu.
2 / 31
Testování modelů
Chyba na trénovacích datech
I
Můžeme zjistit chybu modelu na trénovacích datech?
I
No jasně, můžeme.
I
A je to dobrý odhad chyby modelu na neznámých datech?
I
Ne, není! Proč?
I
Vůbec totiž neříká, jak se bude model chovat pro neznámá data.
3 / 31
Testování modelů
Špatný model I
Představme si klasifikační metodu, která si jen zapamatuje vstupní vzory a pokud přijde na vstup zapamatovaný vzor, odpoví zapamatovanou třídou. Jinak odpoví – NIL.
Trénovací data: x1 x2 1.0 1.0 1.0 1.1 2.0 2.0 2.0 0.0 I I I I
x3 1.5 1.4 1.9 1.8
x4 1.8 1.7 0.9 1.1
y ”A” ”A” ”B” ”B”
Jakou má chybu na trénovacích datech? Nulovou! A jakou chybu bude mít na neznámém vzoru? Třeba (1.1, 1.05, 1.55, 1.85). 100%. Čili nedokáže generalizovat! Neumí zobecnit vlastnosti, které jsou schované v trénovacích datech. 4 / 31
Testování modelů
Přeučení I
Druhým a neméně důležitým problémem je přeučení.
I
Jde o to, že model se naučí i závyslosti, které v datech nejsou.
I
Představte si, že se snažím predikovat, zda bude pršet, svítit sluníčko nebo bude zataženo, podle toho, jaká je teplota a vlhkost vzduchu.
I
Při měření se ale občas přehlédnu a zapíši špatný údaj.
http://perclass.com/doc/guide/classifiers.html 5 / 31
Testování modelů
Trénovací data
I
Ale tyto nechci, aby se tyto chyby model naučil.
I
Naopak chci, aby ostatní (správná) data tyto chyby překryla.
6 / 31
Testování modelů
Testovací data
I
Jak se tedy vyzrát na tento problém?
I
Respektive, jak zjistit, jestli je model opravdu dobrý?
I
Zkusím jej na datech, které model neviděl při učení!
I
Tímto získám nevychýlený odchad chyby modelu na skutečných (doposud neznámých) datech.
7 / 31
Testování modelů
Chyba na trénovacích a Testovacích datech
8 / 31
Testování modelů
Trénovací a testovací data
I
Jak získat trénovací a testovací množinu?
I
Už jsme na to narazili – rozdělím náhodně data na trénovací a testovací část.
I
Proč náhodně? Nemůžu jen vzít první a druhou polovinu instancí?
9 / 31
Testování modelů
Chyba modelu při jiných testovacích datech
I
Když zkusím spočítat chybu modelu na jiných testovacích datech, získám stejnou chybu?
I
(nejen) Chybovost modelu je vlastně náhodná veličina s (většinou) normálním rozdělením.
I
Tím, že spočítám chybu na testovací množině, získám jednu realizaci náhodné proměnné.
I
Když budu počítat chybu na různých testovacích množinách, získám několik realizací chybové náhodné proměnné a můžu spočítat průměrnou chybu a získat tak představu, jak moc je jeden konkrétní model dobrý/špatný.
10 / 31
Testování modelů
Chyba modelu při jiných trénovacích datech
I
Když znovu spustím učení modelu, vznikne mi vždy naprosto stejný model?
I
Teď už vím, jak moc je špatný jeden model. Ale co když mám smůlu a tento model se naučil výrazně hůře/lépe než jiný model vytvořený stejnou metodou.
I
Vím jak moc je dobrá jedna BP neuronová síť, ale jak moc jsou dobré všechny BP neuronové sítě? A jsou lepší než naivní bayesovská síť?
I
Zase parametry chyby jedné realizace modelu jsou jen náhodnými proměnnými všech modelů naučených na tato data.
11 / 31
Testování modelů
Statistika chyb
I
Takže průměrná chyba jednoho modelu je zase jen jedna z množných realizací náhodné veličiny hodnota průměru všech modelů této modelovací metody.
I
Čili, pokud vytvořím a spočítám průměrnou chybu pro jeden model, nemusí to nic znamenat o jiných modelech naučených stejnou technikou.
!POMOC! 12 / 31
Testování modelů
X-fold cross validace (1)
I
Řešením je opakovaně rozdělovat data na trénovací a testovací množinu.
I
A to buď náhodně a nebo nějak systematicky.
I
A uznávaný systematický přístup je křížová validace.
I
Ta funguje tak, že data rozdělím do N částí.
I
Zlatý standard je poružít 10 částí. Pak se mluví o 10 cross fold validation.
I
A to buď náhodně nebo i podle pořadí.
13 / 31
Testování modelů
X-fold cross validace (2)
I
A model pak postavím na N-1 částech (foldech) a na poslední model otestuji.
I
Tím získám jeden odhad chyby.
I
Posunu se o jedna doprava a zase postavím model na (N-1) částech a na zbylém otestuji.
14 / 31
Testování modelů
X-fold cross validace (3)
I
Takto získám N odhadů chyby.
I
Z toho již dokáži spočítat statistiku – například průměrnou chybu klasifikátoru a získat tak poměrně přesný (uvěřitelný) odhad chyby dané klasifikační metody na předložených datech.
I
Navíc s těmito N odhady mohu provádět další statistické testy a vizualizace (boxploty, t-testy, ...)
I
Navíc každý vstupní vzor bude v testovací množině právě jednou. Čili získám představu, jak klasifikátor bude fungovat pro tento konkrétní vzor.
15 / 31
Testování modelů
Použití křížové validace I I
Možné příklady použití křížové validace: odhad přesnosti modelu na datech, I
I
výběr vhodných parametrů modelu, I
I
Provedu křížovou validaci a průměr chyb z každé z N validací je nevychýleným odhadem chyby modelu. Vytvořím modely s různými parametry a na každý z nich spustím křížovou validaci. A opět spočítám pro každé nastavení modelu průměrnou chybu z křížové validace a vyberu tu konfiguraci (ty parametry), které mají nejmenší průměrnou chybu.
porovnání modelovacích metod. I
Pro každou modelovací metodu spočítám průměrnou chybu pomocí křížové validace a vyberu tu metodu, která má nejmenší průměrnou chybu.
16 / 31
Testování modelů
Validační množina
I
Zejména při použití křížové validace pro určení parametrů se ještě používá tzv. validační množina.
I
Jde o to, že před začátkem křížové validace z dat odeberu část – validační množinu.
I
Na zbytku spustím křížovou validaci a najdu optimální parametry.
I
Pak naučím model s těmito optimálními parametry na celé datové množině, kterou jsem předtím použil pro křížovou validaci a abych měl jistotu, že učení modelu dopadlo dobře, naučený model nechám oklasifikovat validační množinu a spočítám validační chybu.
17 / 31
Testování modelů
Nevýhoda trénovacích/testovacích/validačních chyb
I
Představme si datovou množinu se dvěma třídami – zdraví pacienti a nemocní pacienti.
I
Zdravých pacientů je 95% dat a nemocných je zbývajících 5% pacientů.
I
Jakou chybu na testovacích datech (vybraných jako podmnožinu z tohoto datasetu) bude mít klasifikátor, který bude předpovídat, že všichni pacienti jsou v pořádku?
I
95% – to je super klasifikátor! Ale dělá něco užitečného?
I
NE! Takový klasifikátor je k ničemu.
I
Dokáži zjistit z testovací chyby, že klasifikátor provádí něco takového?
18 / 31
Testování modelů
Matice záměn
I
Řešením je matice záměn.
19 / 31
Testování modelů
Specificita a senzitivita (1)
I
Pokud mám binární klasifikátor (tj klasifikátor, který zařazuje do dvou tříd), mohu čísla v matici záměn kvantifikovat číslem.
I
Často se používá specificita a senzitivita. Abychom je dokázali spočítat, musíme se nejdřív zamyslet nad zavést pojmy:
I
I
I
Positive examples – jedna z tříd binárního klasifikátoru (v našem příkladě lidé mající nemoc). Negative examples – druhá z tříd (v našem příkladě zdraví lidé).
20 / 31
Testování modelů
Specificita a senzitivita (2)
I
True positives (TP) – vzory, které model správně označil jako pozitivní (tj lidé, kteří jsou ve skutečnosti jsou nemocní a model je také označil za nemocné).
I
True negatives (TN) – vzory, které model správně označil jako negativní (tj lidé, kteří jsou ve skutečnosti jsou zdraví a model je také označil za zdravé).
I
False positives (FP) – vzory, které model mylně označil jako pozitivní (tj lidé, kterí jsou ve skutečnosti zdraví, ale model je označil za nemocné).
I
False negatives (FN) – vzory, které model mylně označil jako negativní (tj lidé, kterí jsou ve skutečnosti nemocní, ale model je označil za zdravé).
21 / 31
Testování modelů
Specificita a senzitivita (2)
I
Když se podívám do matice záměn, můžu přímo zjistit počty vzorů spadající do jednotlivých škatulek (TP, TN, FP, FN).
Predicted positive Predicted negative
22 / 31
Actually positive #True positives #False negatives
Testování modelů
Actually negative #False positives #True negatives
Specificita a senzitivita (3) I
Teď můžu konečně spočítat specificitu a senzitivitu. specificita =
#True negatives #True negatives + #False negatives
sensitivita =
#True positives #True positives + #False positives
I
Specificita je tedy procento správných ”negatives” ze všech vzorů, které byly označeny za negatives (Procento skutečně zdravých lidí mezi všemi, kteří byli modelem označeni za zdravé).
I
Senzitivita je tedy procento správných ”positives” ze všech vzorů, které byly označeny za positives (Procento skutečně nemocných lidí mezi všemi, kteří byli modelem označeni za nemocné). 23 / 31
Testování modelů
Specificita a senzitivita (4)
I
Když se vrátím k příkladu s klasifikátorem, který klasifikuje všechny lidi, jako zdravé. Jaká bude specificita a senzitivita?
I
Specificita = 1.0
I
Senzitivita = 0.0
24 / 31
Testování modelů
ROC křivka (1)
I
Specificita a senzitivita jsou jen jednou z možností, jak vyhodnocovat možnosti a vlastnosti binárního klasifikátoru.
I
Další hojně využívanou možností je ROC křivka.
I
Typickým výstupem binárního klasifikátoru není přímo hodnota Positive/Negative, ale většinou klasifikátor vrátí číselnou hodnotu a pomocí prahu prozhodnu, kam aktuální vzor zařadím.
I
Typicky se práh volí 0.5, ale jak se změní chyba klasifikátoru, když změní práh?
25 / 31
Testování modelů
ROC křivka (2) I
Mějme klasifikátor, který na tělesné teploty klasifikuje, zda se jedná o zdravého nebo nemocného. Pokud má člověk teplotu menší než práh, jedná se o zdravého člověka. Pokud větší, jedná se o nemocného.
I
Pokud prahem posunu doprava, klasifikuji správně více zdravých lidí, ale (z principu) se mezi ně připletou i nemocní.
I
A obráceně při posunu prahu doleva.
26 / 31
Testování modelů
ROC křivka (3) I
Pak můžu nakreslit graf, kde na I I
na ose Y je počet true positives, na ose X je počet false positives.
http://research.cens.ucla.edu/projects/2006/Multiscaled_Actuated_Sensing/Classification_ Minirhizotron/default.htm
27 / 31
Testování modelů
ROC křivka (4) I
Jak bude vypadat ROC křivka ideálního klasifikátoru (který bezchybně rozděluje obě třídy)?
I
Jak bude vypadat ROC křivka náhodného klasifikátoru (který má chybu 50%)?
I
Pro lepší posouzení kvality ROC křivek můžu použít plochu, kterou shora ohraničuje ROC křivka (Area under curve).
28 / 31
Testování modelů
Lift
I
Lift je další způsob, jak měřit kvalitu klasifikátoru ve specifických úlohách.
I
Mám klasifikátor, který identifikuje zákazníky, kteří by mohli kladně odpovědět na marketingovou nabídku.
I
A ptám se, když oslovím 10% všech mých zákazníků, které model identifikoval jako nejnadějnější, kolik procent zákazníků, kteří by skutečně odpověděli jsem oslovím.
I
lift =
I
Například oslovím 10% zákazníků T-Mobilu a mezi nimi je 50% těch, kteří si skutečně zaplatí nový internet do mobilu, mám lift = 50% 10% = 5.
procento oslovených zákazníků, kteří budou kladně reagovat procento oslovených zákazníků
29 / 31
Testování modelů
Lift křivka I
Když vynesu do grafu lift pro různé počty oslovených zákazníků, získám lift chart, který vypadá takto:
30 / 31
Testování modelů
Zdroje a další čtení
I
http://gim.unmc.edu/dxtests/ROC3.htm
I
http://en.wikipedia.org/wiki/Receiver_operating_ characteristic
I
http://en.wikipedia.org/wiki/Sensitivity_and_ specificity
I
http://www2.cs.uregina.ca/~dbd/cs831/notes/lift_ chart/lift_chart.html
I
http://www2.cs.uregina.ca/~dbd/cs831/notes/ confusion_matrix/confusion_matrix.html
31 / 31
Testování modelů
Vytěžování dat, přednáška 12: Kombinování modelů Miroslav Čepek
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Fakulta elektrotechnická, ČVUT
1 / 33
Kombinování modelů
Ensembles (Kombinování modelů)
I
Aneb víc hlav, víc ví!
I
Co když jsme se dostali na hranice možností jednoho modelu?
I
Co když už delší učení nebo složitější model vede už jen k přeučení modelu?
I
Co s tím?
2 / 33
Kombinování modelů
Motivace
I
Soutěž – Netflix prize (predikce, které filmy by se zákazníkovi mohli také líbit, když viděl a nějak ohodnotil jinou skupinu filmů?)
I
Respektive – cílem je předpovědět hodnocení filmu konkrétním zákazníkem, když víme, jak hodnotil jiné filmy v minulosti.
I
A cenu (2 000 000 USD) získá ten, kdo dokáže na testovací množině zlepšit přesnost o 5%.
3 / 33
Kombinování modelů
Motivace (2)
I
A všechny TOP týmy používají ensembly modelů.
4 / 33
Kombinování modelů
Kombinace modelů I
Kombinace modelů je cestou, jak získat lepší přesnost, než je přesnost nejlepšího z modelů.
I
Každý model dělá chyby pro trochu jiná data. A trochu jiné chyby.
I
Čili, když se zkombinují dohromady, možná modely v ensemblu své chyby eliminují.
I
Také tím, že zkombinuji různé modely, dokáže výsledný model aproximovat rozhodovací hranici, kterou by jinak samostatné modely nedokázaly proložit.
I
Analogie z idealizované zkoušky – každý student se naučí látku (každý s jinými chybami) a společně rozhodují o odpovědích na otázky. A v ideálním případě by měli u každé otázky odpovědět správně :).
5 / 33
Kombinování modelů
Variance modelů (rozptyl chyby modelů)
I I
Vraťme se ještě k chybám modelů. Jak jsem povídal posledně, když vytvořím různé modely (i na stejných datech), nebudou mít stejnou chybu, ale jejich chyby se budou lišit. I I
Například použiji jiné počáteční hodnoty, nebo vezmu jinou podmnožinu trénovací množiny.
6 / 33
Kombinování modelů
Variance modelů (rozptyl chyby modelů) (2)
I
Nicméně chyby všech takto vytvořených modelů by měly být z normálního rozdělení se stejnou střední hodnotou a rozptylem.
I
Čili rozptyl modelů udává jako moc se liší chyba jednotlivých modelů od ideální střední chyby.
7 / 33
Kombinování modelů
Bias modelů (Zaujetí modelů)
I
Bias (zaujetí) vyjadřuje systematickou chybu způsobenou (například) špatně zvolenou trénovací množinou.
8 / 33
Kombinování modelů
Nedoučení modelu (underfitting) I
Model (například lineární regrese) je příliš jednoduchý, aby dokázal popsat data.
I
Modely budou mít nízkou varianci, ale vysoký bias.
I
Co to znamená?
I
Modely si budou podobné, ale mají velkou chybu proti původním datům.
9 / 33
Kombinování modelů
Přeučení modelu (overfitting, už zase) I
Model je příliš ohebný a naučil se i šum, který v datech ve skutečnosti není.
I
Modely budou mít nízký bias, ale vysokou varianci, ale nízký bias.
I
Co to znamená?
I
Modely sice budou mít nízkou chybu na datech, ale jednotlivé modely budou hodně rozdílné.
10 / 33
Kombinování modelů
Kombinování modelů – prevence přeučení I
Přeučení – model se naučí i šum v datech a na testovacích datech vykazuje velké chyby.
I
Mám skupinu modelů, a každý jsem naučil na jiné podmnožině trénovacích dat.
I
A každý model jsem možná přeučil. Ale můžu něčeho dosáhnout jejich kombinací?
I
Snížili jsme rozptyl modelů. 11 / 33
Kombinování modelů
Kombinování modelů – snižování zaujetí I
Jednoduché modelovací metody s malou ohebností (opět naučené na různých podmnožinách dat) nedokáží dobře aproximovat rozhodovací hranici.
I
Jejich kombinací opět dokáži získat mnohem ”ohebnější” hranici a tedy i menší chybu.
12 / 33
Kombinování modelů
Skupiny modelů I I
Síla seskupování modelů tkví v diverzitě (různorodosti) modelů. Diverzity modelů můžu dosáhnout dvěma cestami: I I
I
Vytvořit modely pomocí různých modelovacích technik. Vytvořit modely nad různými podmnožinami trénovací množiny.
Základní použití všech ensemblovacích algoritmů má následující schéma: 1. Vyber stavební jednotky ensemblu (vhodné modely) a vytvoř pro každý trénovací množinu. 2. Natrénuj všechny modely v ensemblu (učení jednotlivých modelů může být závyslé na učení ostatních modelů v ensemblu). 3. Výstup skupiny modelů – spočítej výstup všech modelů v ensemblu a jejich výstup skombinuj do výsledného výstupu.
13 / 33
Kombinování modelů
Základní ensemblovací algoritmy
I
Pro klasifikační a regresní úlohy se dají použít: I I I I
I
Bagging Boosting Stacking Cascade generalization
Pouze pro klasifikační úlohy se také dají použít: I I I
Cascading Delegating Arbitrating
14 / 33
Kombinování modelů
Bagging
I
Nejjednodušší ensemblovací metoda.
I
Nezávysle naučím skupinu modelů. Výstup ensemblu se určí:
I
I
I
pro regresi – spočítám průměrnou hodnotu ze všech výstupů modelů v ensemblu. pro klasifikaci – spočítám majoritu z výstupů modelů v ensemblu.
15 / 33
Kombinování modelů
Bagging (2)
16 / 33
Kombinování modelů
Boosting I
Naučím posloupnost modelů, každý další model se bude všímat té část vstupních dat, ve které předchozí modely chybovaly.
I
To, jak moc si bude model všímat vstupních dat se vyjadřuje vahami vstupního vzoru.
I
Oklasifikuji trénovací data všemy doposud naučenými modely a vzorům, na kterých jsem udělal chybu, přidám do trénovací množiny následujícího modelu.
I
Z toho vyplývá, že se modely učí jeden po druhém.
I
Výstup ensemblu se spočítá jako vážený průměr (vážená majorita).
I
Váhy pro majoritu se určí na základě přesnosti jednotlivých modelů. 17 / 33
Kombinování modelů
Boosting (2)
18 / 33
Kombinování modelů
Adaboost I I I
Nejznámější algoritmus pro Boosing se nazývá Adaboost. Základní algoritmus předpokládá klasifikaci do dvou tříd (+1 / -1). Značení n je počet vzorů v trénovací množině. ht je model (klasifikátor).
1. Nastav konstantní váhů všech vzorů v trénovací množině na D1 (i) = n1 a nastav t = 1. 2. Nauč klasifikátor ht . 3. Spočítej ∑ globální chybu na trénovacích datech ηt = ∀i,ht (xi )6=yi Dt (i) 4. Změň váhy všech vstupních vzorů, u kterých klasifikátor ht ηt udělal chybu. Dt+1 (i) = DZt (i) . ∀i, kde ht (xi ) 6= yi . i 1−ηt 5. Pokud globální chyba ηt klesla pod stanovenou hranici, skonči. Jinak pokračuj bodem 2. I
Prezentace věnovaná přímo algoritmu Adaboost http://www.robots.ox.ac.uk/~az/lectures/cv/adaboost_matas.pdf 19 / 33
Kombinování modelů
Stacking
I
Nezávysle naučím skupinu modelů. Pro určení finálního výstupu použiji místo majority další model (meta model).
I
Získám tím větší možnosti pro kombinaci výstupů jednotlivých modelů.
I
Výstupy jednotlivých modelů slouží vstupy meta modelu.
I
Při počítání výstupu spočítám výstupy jednolivých modelů, které pak pustím do meta modelu, který spočítá skutečný výstup.
20 / 33
Kombinování modelů
Stacking (2)
21 / 33
Kombinování modelů
Cascade generalization
I
Modely v ensemblu tvořím postupně, ke vstupním proměnným postupně přidávám výstupy předchozích modelů.
I
Vstupem i-tého modelu jsou tedy vstupní proměnné (x1 , x2 , . . . , xn , y1 , . . . , yi−1 )
I
Kde y1 , . . . , yi−1 jsou výstupy předchozích modelů.
I
Modely je tedy učí jeden po druhém a výstupem ensemblu je výstup posledního modelu.
22 / 33
Kombinování modelů
Cascade generalization (2)
23 / 33
Kombinování modelů
Cascading
I
Podobně jako u Boostingu se další modely specializují na vzory, které předchozí modely klasifikovaly špatně – které indikovaly nízkou pravděpodobnost přiřazení vzoru do dané třídy.
I
Při počítání výstupu ensemblu se použije výstup modelu, který udává dostatečně vysokou ppst výstupní třídy.
24 / 33
Kombinování modelů
Cascading (2)
25 / 33
Kombinování modelů
Delegating
I
Trénovací množina prvního modelu je celá trénovací množina.
I
Do trénovací množiny dalšího klasifikátoru se přiřadím stupní vzory, které byly klasifikovány špatně nebo ppst jejich zařaení do správné třídy je menší než určený práh.
I
Výstup ensemblu je výstup modelu, který indikuje dostatečně vysokou ppst přiřazení do dané třídy.
26 / 33
Kombinování modelů
Delegating (2)
27 / 33
Kombinování modelů
Arbitrating
I
Trochu zvláštní metoda, kde jsou dva typy modelů I I
standardní modely, predikující cílovou proměnnou, rozhodčí modely, které predikují úspěšnost standardních modelů.
I
Každý stadardní model má svůj rozhočí model.
I
Každá dvojice stardní+rozhodčí model je učena nezávisle.
I
Výstupem ensemblu je model, jehož rozhodčí predikuje nejvyšší míru úspěchu.
28 / 33
Kombinování modelů
Arbitrating (2)
29 / 33
Kombinování modelů
Výběr relevatních příznaků
I
Poslední téma tohoto kurzu – opravdu všechny vstupní proměnné potřebuji ke klasifikaci?
I
Při klasifikaci zdravých a nemocných lidí asi bude hrát větší roli jejich teplota a tlak, než barva vlasů.
I
Techniky, které vybírají vhodné vstupní proměnné, se označují jako feature selection (případně feature ranking) metody. A dělí se do dvou hlavních kategorií:
I
I
I
feature selection – tyto metody dodají seznam vstupních proměnných (atributů), které považují za důležité, feature ranking – tyto metody přiřadí každému atributu skóre, který indikuje vliv atributu na výstupní třídu.
30 / 33
Kombinování modelů
Feature selection
I
Typicky hledají podmnožinu atributů, na které model ještě funguje dobře. Dělí se do 3 hlavních kategorií: I
I
Wrappers – vyberou skupinu atributů, nad ní naučí nějaký model, spočítají jeho přesnost a podle přesnosti upraví skupinu atributů, atd... Filters – fungují dost podobně, jen místo modelů se vyhodnocují tzv. filtry. I
I
Filtry se v této souvislosti rozumí například korelace mezi vybranou skupinou vstupů a výstupem nebo vzájemná informace, ...
Embedded techniques – tento způsob je zabudován do učícího algoritmu modelu a podle toho, které proměnné model využívá, se sestavuje seznam důležitých atributů.
31 / 33
Kombinování modelů
Feature selection (2)
I
Při hledání vhodné kombinace se často uplatňuje ”hladový” přístup.
I
Nejprve hledám množinu s jedním atributem, která má nejvyšší skóre (například nejvyšší přesnost modelu).
I
K této jednoprvkové množině zkouším přidávat další atribut a hledám, který přinese největší zlepšení modelu.
I
Pak hledám třetí, a tak dále, dokud se model nepřestane zlepšovat.
32 / 33
Kombinování modelů
Feature ranking
I I
Přiřazuje každé vstupní proměnné skóre, které určuje její významnost. Často se používají stejné metody, které se na předchozím slajdu označovaly jako filters: I I I I
I
vzájemná informace mezi jednotlivými atributy a výstupem, korelace, informační entropie, přesnost perceptronu s jedním vstupem.
Je pak na člověku, jak těchto informací využije.
33 / 33
Kombinování modelů
Vytěžování dat, cvičení 12: Neuronové sítě typu Back Propagation Miroslav Čepek
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Fakulta elektrotechnická, ČVUT
1/5
Neuronové sítě
Zadání domácího úkolu
I
V software Rapidminer experimentujte s implementací neuronové sítě typu back-propagation.
I
Touto sítí klasifikujte dodaná data (Glass identification dataset viz. http://archive.ics.uci.edu/ml/datasets/ Glass+Identification).
I
Experimentujte s počtem skrytých vrstev a počty neuronů v těchto vrstvách - najděte co možná nejpřesnější a nejméně přesnou konfiguraci neuronové sítě.
I
Zkuste najít minimální počty neuronů ve skrytých vrstvách, pro které síť ještě dokáže data klasifikovat s rozumnou chybou.
I
Pro odchad chyby vždy použijte 10 násobnou Cross-validaci.
2/5
Neuronové sítě
Zadání domácího úkolu (2)
I
Pro nejpřesnější a nejméně přesnou konfiguraci neuronové sítě vytvořte matici záměn (confusion matrix) a ilustrujte na nich rozdíly v klasifikaci.
I
V datech změňte výstupní třídu tak, aby indikovala ”Sklo typu 2 nebo 3” a ”Všechna ostatní skla”.
I
Pro takto změněná data a několik neuronových sítí (viz další bod) zobrazte ROC křivku a okomentujte, co ROC křivka říká. Na jejich základě učiňte závěr, která konfigurace neuronové sítě dává nejlepší výsledky.
I
Použijte NS s jedním neuronem v obou skrytých vrstvách a pak vaši nejlepší a nejhorší nalezenou konfiguraci.
3/5
Neuronové sítě
Obsah zprávy
I
Obsahem zprávy bude: I
I I
I
popis výsledků pro jednotlivé konfigurace (počty skrytých vrstev a počty neuronů v nich) neuronové sítě a volitelně i zobrazení NS v jedné konfiguraci, popis výsledků získaných z ROC křivek a jejich zobrazení, váš komentář k předchozím bodům.
V domácím úkolu můžete použít Rapidminer proudy, které naleznete na webu cvičení.
4/5
Neuronové sítě
Uzly
I I
Neuronová síť typu back-propagation, kterou máte zkoumat se skrývá v uzlu nazvaném Neural Net Uzly v programu Rapid miner, které se vám také mohou hodit: I I I I
Apply Model Performance Validation Read CSV
5/5
Neuronové sítě