Rozhodovací stromy
Transkript
Rozhodovacı́ stromy Atribut Outlook Sunny Humidity High No Overcast Rain Yes Normal Yes Hodnota atributu Wind Strong No Weak hodnota cílového atributu Yes Rozhodovacı́ strom pro daný cı́lový atribut G je kořenový strom tvořený z • kořene a vnitřnı́ch uzlů označených atributem; ze kterého vede jedna hrana pro každou možnou hodnotu tohoto atributu; • listy jsou označeny předpokládanou hodnotou cı́lového atributu G za předpokladu, že ostatnı́ atributy nabývajı́ hodnot na cestě od kořene do listu. Pokud se některé atributy na cestě nevyskytujı́, na jejich hodnotě nezáležı́. Základ algoritmu tvorby rozhodovacı́ho stromu z dat je následujı́cı́: 1. vyber atribut; vytvoř z něj uzel a rozděl data podle hodnoty tohoto atributu 2. pro každou hodnotu atributu vytvoř podstrom z dat s odpovı́dajı́cı́ hodnotou 3. pokud data obsahujı́ jen jednu hodnotu cı́lové třı́dy či pokud došly atributy k dělenı́, vytvoř list s hodnotou nejčetnějšı́ cı́lové třı́dy. Otázkou je, jak vybı́rat atribut k dělenı́. Entropie Po mı́ře entropie rozdělenı́ hodnot daného atributu A (tj. mı́ře nejistoty, negativnı́ mı́ře informace) chceme, aby: • byla nula, pokud jsou všechny hodnoty cı́lové třı́dy stejné • byla největšı́, pokud je stejně hodnot všech cı́lových třı́d (tj. nevı́me nic) • aby rozhodnutı́ ve dvou krocı́ch vedlo ke stejnému výsledku jako rozhodnutı́ naráz, tj. 7 E([2, 3, 4]) = E([2, 7]) + · E([3, 4]) 9 Toto splňuje pouze entropie E([ p1 , . . . , pn ]) = − ∑in=1 pi log pi , logaritmus se bere většinou dvojkový. Pozn. nemusı́me normalizovat, pak dostaneme entropii násobenou součetem všech pi . Pokud chceme uvést, přes který atribut entropii počı́táme, použı́váme dolnı́ index, např. E X j , resp. EG pro cı́lový atribut. Entropie pro dvouhodnotový atribut Entropie 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 vodorovná osa: pi , svislá: entropie. 0.8 0.9 1.0 ID3 algorithmus Uzel, který dáme do kořene (pod)stromu, vybı́ráme podle maximálnı́ho informačnı́ho zisku (information gain), definovaného pro množinu dat data a atribut X j jako: Gain(data, X j ) = EG (data) − ∑ x j ∈X j |dataX j =x j | EG (data X j =x j ) |data| kde data X j =x j je podmnožina data, kde atribut X j má hodnotu x j , entropie je definovaná |G| |dataG=g | |dataG=g | EG (data) = ∑ − · log2 = ∑ − pi · log2 pi | data | | data | g∈ G i =1 kde pi je počet dat v data patřı́cı́ do třı́dy gi dělený celkovým počtem dat v data. Algoritmus ID3 algorithm(data, G cı́l, Attributes vstup. atributy) Vytvoř kořen root Pokud majı́ všechna data stejné g, označ kořen g a konec, Pokud došly Attributes, označ root nejčastějšı́ hodnotou g v data a konec jinak X j = atribut z Attributes s maximálnı́m Gain(data, X j ) označ root atributem X j pro každou hodnotu x j atributu X j , přidej větev pod root, odpovı́dajı́cı́ testu X j = x j data X j =x j = podmnožina data, kde X j = x j Je–li data X j =x j prázdné, přidej list označený nejčastějšı́ hodnotou g v data a konec jinak přidej podstrom ID3(data X j =x j , G, Attributes \ { X j }) vrať root Chyba predikce • na trénovacı́ch datech • na nových datech (při nasazenı́ v reálu) Occamova břitva • preferujeme jednoduššı́ model (jsou–li srovnatelně dobré) • penalizujeme složité modely Snažı́m se strom zmenšit (prořezat) bez velkého zhoršenı́ chyby. Prořezávánı́ • postprunning – nejdřı́v vytvořı́me strom, pak ho prořezáváme; • preprunning – ukončit tvořenı́ stromu dřı́ve, než dojdeme na konec. I když pre–prunning vypadá lákavěji (než zbytečně tvořit dál a prořezávat), častěji se použı́vá postprunning, protože nezamı́tne kombinaci atributů, z nichž žádný jednotlivec nenı́ užitečný, ale jako celek užitečnı́ jsou. Nenı́ jasné, jestli lze nalézt preprunning strategii, která by byla stejně dobrá, jako postprunning. Odhad chyby • reduced error prunning – nechám trochu dat na prořezávánı́, ale bohužel učı́m strom na méně datech. • odhadovat chybu na základě trénovacı́ch dat – použito v C4.5, motivováno statistikou. • optimalizovat penalizovanou mı́ru chyby (CART). Odhad chyby z trénovacı́ch dat • Uvažujme list `, v něm je N` přı́kladů, v datech je Err` přı́kladů chybných (tj. různých od nejčetnějšı́ třı́dy) • fˆ` = Err` N` je pozorovaná frekvence chyby, • předpokládáme, že N` instancı́ bylo generováno Bernoulliho procesem s parametrem q` (=správná (true) pravděpodobnost chyby), • vzhledem k tomu, že odhad je založen na trénovacı́ch datech, děláme pesimistický odhad a mı́sto výpočtu konfidenčnı́ho intervalu bereme jako odhad hornı́ hranici tohoto intervalu. V C4.5 je default hladina významnosti (confidence level) α = 0.25 hledáme z tak, aby: ˆ` q − f ` P q > z = α q` (1−q` ) N` Pro α = 0.25 je z = 0.69, nižšı́ α vede k drastičtějšı́mu prořezánı́. z ˆ ` použijeme pro výpočet pesimistického odhadu frekvence chyby err r 2 ˆf ` + z2 + z fˆ` − fˆ` + z2 2 2N` N` N` 4N` ˆ `= err 2 1 + Nz ` Nebo přibližně: s ˆ ` ≈ fˆ` + zσ` ≈ fˆ` + z · err fˆ` (1 − fˆ` ) N` Prořezávánı́ Postprunning uvažuje dvě operace, • subtree replacement – vyberu podstrom a nahradı́m ho listem; to určitě snı́žı́ přesnost na trénovacı́ch datech, ale může to zlepšit predikci na nezávislých testovacı́ch datech. Postupujeme od listů ke kořeni, v každém uzlu buď podstrom nahradı́me, nebo necháme. • subtree raising – komplexnějšı́ a je otázkou, je–li třeba. Ale je použité v C4.5. Jde o vynechánı́ jednoho uzlu, nahrazenı́ ho jeho podstromem a překlasifikovánı́m přı́kladů, které patřily do zbylých podstromů. V praxi se to zkoušı́ jen pro nejnavštěvovanějšı́ větev. Numerické atributy 64 65 68 69 70 71 72 75 80 81 83 85 yes no yes yes yes no no,yes yes,yes no yes yes no U tohoto atributu připadá v úvahu 11 dělicı́ch bodů, ale pokud neuvažujeme dělenı́ mezi dvěma stejnými hodnotami cı́lového atributu, tak jen 9. Pro každý řez zvlášť můžeme zjistit informačnı́ zisk, např. pro řez v 71.5 dostaneme 6 8 E([9, 5]) − E([4, 2], [5, 3]) = E([9, 5]) − ( · E([4, 2]) + · E([5, 3])) 14 14 = 0.940 − 0.939 bitů. Testů podle numerického atributu může být na cestě z kořene do listu vı́c – narozdı́l od diskrétnı́ho atributu, kde rovnou dělı́me podle všech možných hodnot. Penalizace mnohahodnotových atributů • Dělenı́ dle identifikačnı́ho kódu záznamu vede k nulové entropii, ale nezobecňuje. • Pro výběr dělenı́ užijeme Gain ratio= Gain(data,X j ) E( X j ) tj. penalizujeme započı́tánı́m informace obsažené v samotném dělenı́ podle atributu, bez ohledu na cı́lovou třı́du. Např. ID kód pro N přı́kladů bude mı́t informaci obsaženou v atributu: E([1, 1, . . . , 1]) = −( N1 · log 1 ) N · N = log N. • Nebo jednoduše dovolı́me jen binárnı́ dělenı́(CART); připouštı́–li atribut dalšı́ dělenı́, pokračuje do podstomů. • V praxi se navı́c přidávajı́ at–toc testy na vyhozenı́ ID, i když vyjde nejlepšı́, a na omezenı́ přı́lišné závislosti na entropii atributu tı́m, že vyberu maxmálnı́ gain ratio jen tehdy, pokud je i information gain aspoň tak dobrý jako průměrný information gain přes všechny testované atributy. • C4.5 navı́c nevybere atribut, který má skoro jen jednu hodnotu – vyžaduje aspoň dvě hodnoty s aspoň dvěma přı́klady s tı́m, že ta druhá dvojka se dá nastavit a měla by se zvětšit, máme–li hodně dat s velkým šumem. Binárnı́ řez pro kategoriálnı́ atributy • Pro q hodnot 2q − 1 možných dělenı́, ALE • pro 0–1 výstup stačı́ – setřı́dit hodnoty atributu dle klesajı́cı́ proporce těch s cı́lem 1 – vyzkoušet všechny řezy, tj. q − 1. • Pro kvantitativnı́ výstup setřı́dit kategorie dle klesajı́cı́ho průměru cı́le a totéž. Chybějı́cı́ hodnoty • Ignorovat celou instanci často nemůžeme, protože by nám nezbyla žádná data. Navı́c, pokud chybějı́cı́ atribut nenese informaci pro rozhodovánı́, tak je tahle instance stejně dobrá jako všechny ostatnı́. • Pokud fakt, že údaj chybı́, nenı́ náhodný, pak je vhodné chyběnı́ hodnoty považovat za dalšı́ možnou hodnotu atributu.např. plat neuvedou ti, kdo ho majı́ hodně malý či hodně velký. • Pokud ale samotný fakt chyběnı́ nenese informaci (např. neměřil porouchaný teploměr), pak je lépe nakládat jinak. • Možné řešenı́ je rozdělenı́ instance na kousky (numericky vážit podle počtu trénovacı́ch instancı́ jdoucı́ch jedotlivými větvemi), dojı́t k listům, a váženě zkombinovat predikce na listech. • Podobně použı́váme váhy pro výpočet informačnı́ho zisku a informač. poměru a pro dělenı́ instancı́ podle chybějı́cı́ho att. Různé mı́ry pro větvenı́ stromu • entropie − ∑kK=1 p̂m,k log p̂m,k • chyba predikce 1 Nm ∑i∈Rm I ( yi 6= k(m)) = 1 − p̂m,km • Gini ∑k6=k| p̂m,k p̂m,k| = ∑kK=1 p̂m,k (1 − p̂m,k ) Interpretace Gini: – předpovı́dám pravděpodobnosti, pak je trénovacı́ chyba Gini – Gini je součet rozptylů jednotlivých třı́d k při 0–1 kódovánı́ Přı́klad: Je dělenı́ (300,100) a (100,300) lepšı́ či horšı́ než (200,400) a (200,0)? Miry pro vyber vetveni stromu 0.5 0.4 0.3 0.2 0.1 0 0 0.1 entropie 0.2 0.3 0.4 0.5 0.6 0.7 misclas. error GINI 0.8 0.9 1.0 Různá cena chyby • Raději predikuji infarkt i tomu, kdo ho nedostane, než nevarovat toho, kdo ho dostane. • Lkk| matice ceny za chybnou klasifikaci k jakožto k| • pro vı́cekategoriálnı́ klasifikaci modifikujeme Gini = ∑k6=k| Lkk| p̂mk p̂mk| • pro dvouhodnotovou vážı́me prvky třı́dy k Lkk| krát • v listu pak klasifikujeme k(m) = argmink ∑l Llk p̂ml . Cena za pozorovánı́ Gain2 ( S, X j ) Cost( X j ) učenı́ robota, nakolik objekty mohou být uchopeny Schlimmer 1990, Tan 1993 nebo 2Gain( S,X j )−1 (Cost( X j ) + 1)w Nunez 1988 medicı́nská diagnostika. Nunez 1991 srovnává oba přı́stupy na různých přı́kladech. Složitost algoritmu Mějme N instancı́ o p atributech. Předpokládejme hloubku stromu O(logN ), tj. že zůstává rozumně hustý. Vytvořenı́ stromu potřebuje O( p · N · logN ) času. (Na každé hloubce se každá instance vyskytne právě jednou, je logN hloubek, v každém uzlu zkoušı́me p atributů. Složitost subtree replacement je O( N ), složitost subtree raising je O( N (logN )2 ). Celková složitost tvorby stromů je O( pNlogN ) + O( N (logN )2 ). Pravidla ze stromů • Ze stromu můžeme vytvořit pravidla napsánı́m pravidla pro každý list. • Ta pravidla ale můžeme ještě zlepšit tı́m, že uvažujeme každý atribut v každém pravidle a zjistı́me, jestli jeho vynechánı́m pravidlo nezlepšı́me (tj. nezlepšı́me chybu na validačnı́ch datech resp. pesimistický odhad chyby na trénovacı́ch datech). • To funguje celkem dobře, ale dlouho, protože pro každý atribut musı́me projı́t všechny trénovacı́ přı́klady. Algoritmy tvořı́cı́ pravidla přı́mo bývajı́ rychlejšı́. • Výsledná pravidla setřı́dı́me podle klesajı́cı́ úspěšnosti. Stromy pro numerickou predikci • Listy stromů obsahujı́ numerické hodnoty, rovné průměru trénovacı́ch přı́kladů v listu. • pro výběr atributu k dělenı́ zkoušı́me všechny řezy, vybı́ráme maximálnı́ zlepšenı́ střednı́ kvadratické chyby. • Tyto stromy se nazývajı́ také regresnı́ stromy, protože statistici nazývajı́ regrese proces pro predikci numerických hodnot. • Můžeme i kombinovat regresnı́ přı́mku a rozhodovacı́ strom tı́m, že v každém uzlu bude regresnı́ přı́mka – takový strom se nazývá model tree. CART Hledá proměnnou j a bod řezu s na oblasti R1 ( j, s) = { X | X j ≤ s} a R2 ( j, s) = { X | X j > s} takové, aby minimalizovaly " # min j,s = minc1 ∑ xi ∈ R1 ( j,s) ( yi − c1 )2 + minc2 ∑ ( yi − c 2 )2 xi ∈ R2 ( j,s) vnitřnı́ minima jsou průměry, tj. ĉ1 = avg( yi | xi ∈ R1 ( j, s)). Prořezávánı́ v CART • Naučme strom T0 až k listům s málo (5–ti) záznamy. • Vytvořı́me hierarchii podstromů T ⊂ T0 postupným slévánı́m listů dohromady. • Listy stromu T o velikosti | T | indexujeme m, list m pokrývá oblast Rm , definujeme: ĉm Qm ( T ) = = 1 Nm 1 Nm ∑ yi , ∑ ( yi − ĉm )2 . xi ∈ R m xi ∈ R m • Definujeme kriterium k optimalizaci: |T | Cα ( T ) = ∑ Nm Qm ( T ) + α | T |. m=1 • Vyjdeme z T0 , postupně slijeme vždy dva listy, které způsobı́ nejmenšı́ nárůst ∑m Nm Qm ( T ), až nám zbyde jen kořen. • Dá se ukázat, že tato posloupnost obsahuje Tα optimálnı́ stromy pro daná α. • α = 0 – neprořezáváme, necháme T0 , pro α = ∞ necháme jen kořen, vhodné α zvolı́me na základě krosvalidace, α̂ minimalizuje krosvalidačnı́ chybu RSS, vydáme model Tα̂ .
Podobné dokumenty
eagle-sbírka úloh
Při výpočtu hodnoty potenciometru P1 vycházíme ze vzorce, který je uveden
v doporučeném zapojení výrobce na obr. 4, a ze zadaných hodnot výstupního napětí.
Protože proud IADJ je řádově 100 µA, může...
a. příprava projektu
∆UC1 – rozdíl max. a min. hodnoty napětí na C1
U C1=U MAXC1 −U MINC1
U C1=10,45−8=2,45 V
t – perioda nabíjení a vybíjení C1 (u dvoucestného můstkového usměrnění
odpovídá f = 100 Hz)
M etriky softw arove kvality S polehlivost v testovanı softw aru O
Sledovanou proměnnou studovaných kritériı́ je počet defektů (nebo
rychlost defektů normalizavaná počtem řádku kódu) za daný časový
interval (týdny, měsı́ce, atd.), nebo doba mezi dv...
Periodická literatura v roce 2012
http://archiv.ucl.cas.cz/index.ph
p?path=CesLit
http://www.prolekare.cz/ceskoslovenskapediatrie?confirm_rules=1
http://www.tigis.cz/casopisy/pr
o-lekare/ceskoslovenskafyziologie.html
Základy práce s programem Simulink
Schopností tohoto bloku je nahrazovat vstupní signál, jehož hodnota leží
v oblasti necitlivosti, nulovou hodnotou výstupu. Oblast necitlivosti je vymezena hodnotami vepsanými do políček Start of de...
Uvodnı slovo - Římskokatolická farnost u kostela sv. Tomáše v Brně
pozemského života. Všichni vı́me,
že to nenı́ snadné a že poslednı́ fáze
lidského života bývá často nesnadná.
I když během celého života byl
člověk úspěšný, stačil na všech...
TAEKWONDO WTF Karviná
14.5. Zakázané akce
14.5.1. Následující akce jsou klasifikovány jako zakázané akce a vyhlašuje se "Kyonggo"
a) Překračování hraniční čáry
b) Vyhýbání se otáčením se k soupeři zády
c) Padání
d) Vyhý...
DIPLOMOV´A PR´ACE Digitáln´ı kompenzacn´ı jednotka pro
Výsledkem je tedy přı́pravek, pomocı́ kterého je možné snı́žit zbytkové napětı́ v
měřı́cı́m obvodu z desı́tek milivoltů na desı́tky až jednotky mikrovoltů.