Mesterséges Intelligencia MI Egyszerű döntés Döntési fák Tanuljuk meg! Metsszük meg! Pataki Béla Bolgár Bence BME I.E. 414, 463-26-79 pataki@mit.bme.hu, http://www.mit.bme.hu/general/staff/pataki
Példaprobléma: várjunk-e az étteremben asztalra 12 mintánk van, amik alapján kialakítjuk a döntési fát Pl. Attribútumok Cél Altern Bár Pént Éhes Kuncs Ár Eső Fogl Típus Becs VárniFog --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- X 1 Igen Nem Nem Igen Néhány Drága Nem Igen Francia 0 10 Igen X 2 Igen Nem Nem Igen Tele Olcsó Nem Nem Thai 30 60 Nem X 3 Nem Igen Nem Nem Néhány Olcsó Nem Nem Burger 0 10 Igen X 4 Igen Nem Igen Igen Tele Olcsó Nem Nem Thai 10 30 Igen X 5 Igen Nem Igen Nem Tele Drága Nem Igen Francia >60 Nem X 6 Nem Igen Nem Igen Néhány Közep Igen Igen Olasz 0 10 Igen X 7 Nem Igen Nem Nem Senki Olcsó Igen Nem Burger 0 10 Nem X 8 Nem Nem Nem Igen Néhány Közep Igen Igen Thai 0 10 Igen X 9 Nem Igen Igen Nem Tele Olcsó Igen Nem Burger >60 Nem X 10 Igen Igen Igen Igen Tele Drága Nem Igen Olasz 10 30 Nem X 11 Nem Nem Nem Nem Senki Olcsó Nem Nem Thai 0 10 Nem X 12 Igen Igen Igen Igen Tele Olcsó Nem Nem Burger 30 60 Igen Mi benne a viselkedésünk mintája? Van-e egyáltalán konzisztens viselkedési mintánk? (9216 lehetséges példa)
Döntési fák tanulása döntési fa egy logikai függvény, gráf (fa) reprezentációval bemenete: egy tulajdonsághalmazzal leírt objektum vagy szituáció kimenete: egy igen/nem döntés/cselekvés" belső csomópont : valamelyik tulajdonság tesztje él : a teszt egy lehetséges értéke levél : logikai érték, amelyet akkor kell kiadni, ha ezt a levelet elértük. Szituáció: Kuncsaft= Tele, Altern= Igen, Bár= Nem,.. Döntés: Várjunk! (VárniFog= IGAZ )
Döntési fák kialakítása példák alapján A legkisebb döntési fa megtalálása - általánosságban nem megoldható Heurisztika: mohóság - egy meglehetősen egyszerű (jó) fa is jó lesz! Az alapötlet (mohóság): először a legfontosabb attribútumot teszteljük. legfontosabb" = a legnagyobb eltérést okozza példák besorolási arányában Elvárás: ha kisszámú teszt alapján korrekt besoroláshoz jutunk: a bejárási utak rövidek lesznek, és így az egész fa kicsi (tömör) lesz. Az információelmélet felhasználása Olyan attribútumot válasszunk, amely a lehető legmesszebb megy a pontos besorolás biztosításában. A tökéletes attribútum a példákat két csoportra bontja, az egyikbe csak pozitív, a másikba csak negatív példák tartoznak. Ezzel be is lehetne fejezni a fa tanítását!
A Kuncsaft attribútum nem tökéletes, de elég jó. Egy nagymértékben haszontalan attribútum, mint pl. a Típus olyan példahalmazokat hoz létre, amelyek nagyjából ugyanolyan arányban tartalmaznak pozitív és negatív példákat, mint az eredeti halmaz.
Elég jó?" Nagymértékben haszontalan?" A mérték maximuma: a fenti értelemben tökéletes attribútumra minimuma: olyan attribútumra, ami értéktelen számunkra. Egy megfelelő mérték: az attribútumteszt által adott információnyereség várható értéke (információ átlagos tartalma, entrópia, ) (Eddig és a legtöbb helyen két érték lehet, kétosztályos, bináris probléma. Itt definiáljuk K érték esetére.) Ha a V lehetséges k értékeinek valószínűsége P( k ), akkor az adott konkrét változó mellett az információszükséglet: I( P( ), P( ),..., P( )) P( ) log ( P( )) 1 2 n k 2 k k 1 n Ennyi információra van szükségünk, hogy pontos választ adjunk arra kérdésre, melyik érték fog bekövetkezni lehetséges K-ból. Pl. szabályos pénzérmedobás 1 bit infó kell, hogy előre megmondjuk fej lesz-e vagy írás. Teszt(V) v 1 P(v 1 ) P(v n ) v k v n
Információ szükséglet = a tanító halmazban található pozitív és negatív példák aránya határozza meg (kétosztályos eset) Ha a tanítóhalmaz p pozitív és n negatív példát tartalmaz, azaz két válasz van: v 1, v 2, amelyek valószínűsége ezek alapján P(v 1 ) p /(p+n), P(v 2 ) n /(p+n) Ekkor az információszükséglet becslése: I( p, n ) p log 2( p ) n log 2( n ) p n p n p n p n p n p n (A12 elemű étterem tanító halmazra: p = n = 6 1 bit információ szükséges) I(0,1) =? I 0,1 = 0 log2 0 1 log2(1), de log2(1)=0, csak az első tag érdekes 0 log2 0 = lim x 0 x*log2(x)=log2 e lim x 0 x*ln(x) lim x 0 x ln x = lim x 0 ln x 1 x = = lim x 0 l Hospital szabály 1 d(ln x )/dx d(1/x)/dx = lim x x 0 1 = 0 x 2 Hogyan válasszunk tesztelendő attribútumot? Mennyi információnyereséget ad egy attribútum tesztelése? Annak alapján, hogy mennyi információra van még szükségünk az attribútum tesztelése után?
# példa(részfa k ) súly(részfa k ) = ----------------- # példa(fa) I(részfa k ) Nyereség(A) Maradék(A) = k súly(részfa k ) I(részfa k ) Bármelyik A attribútum az E tanítóhalmazt E 1,E 2,,E K részhalmazokra bontja az A tesztjére adott válaszoknak megfelelően, ha A tesztje K különböző választ ad. Eredeti minták: p + n Teszt(A) é 1 é k é K p 1 + n 1 p k + n k pk + n K
Hogyan válasszunk attribútumot? K pk nk pk nk Maradék( A) I (, ) p n p n p n k 1 k k k k bit információra van szükségünk az A attribútum tesztje után a példa besorolásához. Az attribútum tesztjének információnyeresége az eredeti információigény és a teszt utáni új információigény különbsége: p n Nyereség( A) I(, ) Maradék( A) p n p n
Nézzük meg a Kuncsaft és a Típus attribútumok tesztjével elérhető információnyereséget 2 4 6 2 4 Nyereség( Kuncsaft) 1 I (0,1) I(1,0) I(, ) 0,541 bit 12 12 12 6 6 2 1 1 2 1 1 4 2 2 4 2 2 Nyereség( Típus) 1 I(, ) I(, ) I(, ) I(, ) 0 bit 12 2 2 12 2 2 12 4 4 12 4 4 Az összes attribútumra kellene a számítás, de a Kuncsaft kimagaslóan jó
(Kuncsaft = Tele) ágon még fennmaradó példák Példa Attribútumok Cél Altern Bár Pént Éhes Ár Eső Fogl Típus Becs VárniFog X 2 Igen Nem Nem Igen Olcsó Nem Nem Thai 30 60 Nem X 5 Igen Nem Igen Nem Drága Nem Igen Francia >60 Nem X 9 Nem Igen Igen Nem Olcsó Igen Nem Burger >60 Nem X 10 Igen Igen Igen Igen Drága Nem Igen Olasz 10 30 Nem X 4 Igen Nem Igen Igen Olcsó Nem Nem Thai 10 30 Igen X 12 Igen Igen Igen Igen Olcsó Nem Nem Burger 30 60 Igen Részfában: p 1 = 2, n 1 = 4, p 1 /(p 1 +n 1 ) = 1/3, n 1 /(p 1 +n 1 ) = 2/3
I = I(részfa) = I(2/6, 4/6) = 0,9183 Ny(Al) = I [5/6 I(2/5, 3/5) + 1/6 I(0, 1)] Altern = Igen Altern = Nem p2 = 2, p3 = 0 n2 = 3 n3 = 1 6 példa I(2/5, 3/5)=-2*log2(2/5)/5-3*log2(3/5)/5= 0,9710 Ny(Al) = I [5* I(2/5, 3/5)/6 + 1 *I(0, 1)/6] = 0,9183 5*0,9710/6 = 0,11
Ny(Altern) = I [5/6 I(2/5, 3/5) + 1/6 I(0,1)] = 0,92 0,81 0,11 Ny(Bár) = I [1/2 I(1/3, 2/3) + 1/2 I(1/3, 2/3)] = 0,92 0,92 = 0 Ny(Péntek) = I [5/6 I(2/5, 3/5) + 1/6 I(0,1)] = 0,92 0,81.11 Ny(Éhes) = I [4/6 I(1/2, 1/2) + 2/6 I(0,1)] = 0,92 0,66 0,25 Ny(Ár) = I [4/6 I(1/2, 1/2) + 2/6 I(0,1)] = 0,92 0,66 0,25 Ny(Eső) = I [5/6 I(2/5, 3/5) + 1/6 I(0,1)] = 0,92 0,81 0,11 Ny(Foglalt) = I [2/6 I(0,1) + 4/6 I(1/2,1/2)] = 0,92 0,66 0,25 Ny(Típus) = I [2/6 I(1/2, 1/2) + 1/6 I(0,1) + 2/6 I(1/2, 1/2) + 1/6 I(0,1)] = 0,92 0,66 0,25 Ny(Becs) = I [2/6 I(1/2, 1/2) + 2/6 I(0,1) + 2/6 I(1/2, 1/2)] = 0,92 0,66 0,25
(Éhes = Igen) ágon még fennmaradó példák Példa Attribútumok Cél Alt Bár Pént Ár Eső Fogl Típus Becs VárniFog X 2 Igen Nem Nem Olcsó Nem Nem Thai 30 60 Nem X 10 Igen Igen Igen Drága Nem Igen Olasz 10 30 Nem X 4 Igen Nem Igen Olcsó Nem Nem Thai 10 30 Igen X 12 Igen Igen Igen Olcsó Nem Nem Burger 30 60 Igen Részfában: p 1 = 2, n 1 = 2, p 1 /(p 1 +n 1 ) = 1/2, n 1 /(p 1 +n 1 ) = 1/2
Ny(Alt) = I [1/1 I(1/2, 1/2) + 0] = 1-1 0 Ny(Bár) = I [1/2 I(1/2, 1/2) + 1/2 I(1/2, 1/2)] = 1-1 = 0 Ny(Péntek) = I [1/4 I(0,1) + 3/4 I(1/3,2/3)] = 1 0,92 0,08 Ny(Ár) = I [1/4 I(0,1) + 3/4 I(1/3,2/3)] = 1 0,92 0,08 Ny(Eső) = I [1/1 I(1/2, 1/2) + 0] = 1-1 0 Ny(Foglalt) = I [1/4 I(0,1) + 3/4 I(1/3,2/3)] = 1-0,92 0,08 Ny(Típus) = I [1/4 I(0,1) + 1/4 I(0,1) + 1/2 I(1/2, 1/2)] = 0,5 Ny(Becs) = I [1/2 I(1/2, 1/2) + 1/2 I(1/2, 1/2)] = 1-1 = 0
(Típus = Thai) ágon még fennmaradó példák Példa Attribútumok Cél Alt Bár Pént Ár Eső Fogl Becs VárniFog X 2 Igen Nem Nem Olcsó Nem Nem 30 60 Nem X 4 Igen Nem Igen Olcsó Nem Nem 10 30 Igen A többi nem jellemző Részfában: p 1 = 1, n 1 = 1, p 1 /(p 1 +n 1 ) = 1/2, n 1 /(p 1 +n 1 ) = 1/2 És ez ugyanúgy marad pl. a Bár = Nem?, vagy Eső = Nem?, vagy Ár = Olcsó? stb. mentén (azaz tovább nem érdemes növelni a fát)
A döntési fa hibája Mikor álljunk le a döntési fa növesztésével? Alapvetően 2 stratégia: 1. Korai leállás Túltanulás! (Már csak a zajt tanulja) teszthalmazon mérve tanítóhalmazon mérve A döntési fa leveleinek száma (a levelekkel mérhetjük, hogy mekkorára nőtt a fa, mennyire komplex)
Döntési fa nyesése 2. Engedjük túlnőni, majd visszavágjuk, visszanyessük Első lehetőség Ismerjük fel a nem releváns attribútumot és az adott ágat ne fejtsük ki tovább Irreleváns attribútum: példahalmaz kettévágásánál a kapott részhalmazok azonos arányban tartalmaznak pozitív és negatív példát, mint az eredeti halmaz. Az információ nyereség ilyenkor közel 0. Az információ nyereség hiánya az irrelevancia jó jelzése. Milyen nagy legyen az információ nyereség, hogy egy attribútumot mégis felhasználjunk a példahalmaz megosztására? Statisztikai teszt: nincs jellegzetes minta = ún. nulla hipotézis. Ha az eltérés nagy (nagyobb, mint 0) nem valószínű, hogy az észlelt minta statisztikai ingadozásból következik lényeges minta van az adatokban.
Ha egy irreleváns attribútumot tesztelünk, akkor azt várjuk, hogy a minták eloszlása a teszt után keletkező rész mintahalmazokban ugyanolyan lesz, mint a teszt előtti összesített mintahalmazban volt. Vegyünk egy kétosztályos osztályozási példát. A minták vagy a C1 vagy a C2 osztályba tartoznak, az egyikbe tartozó példákat pozitív példának (p) nevezzük, a másik osztályba tartozókat pedig negatívnak (n). Az a attribútum TESZT(a) tesztjének lehetséges értékei: v1, v2, v3,, vk S 1 : TESZT(a)=v1 értékekkel rendelkező minták halmaza, benne a pozitív és negatív minták száma [p 1, n 1 ] TESZT(a) S 2 : TESZT(a)=v2 értékekkel rendelkező minták halmaza, benne a pozitív és negatív minták száma [p 2, n 2 ] S : kiinduló mintahalmaz [p, n] p: a pozitív, n: a negatív minták száma S-ben S k : TESZT(a)=vk értékekkel rendelkező minták halmaza, benne a pozitív és negatív minták száma [p k, n k ]
Azzal az úgynevezett H 0 nullhipotézissel élünk, hogy ez az elvégzett teszt valójában irreleváns. Ennek eldöntésére azt vizsgáljuk, hogy a keletkező részhalmazokban a pozitív és negatív minták aránya eltér-e a kiinduló halmazbeli aránytól. p n p n p p i i i ˆ n n p n p n i i i ˆ k i i i i i i i n n n p p p D 1 2 2 ˆ ˆ ˆ ˆ Statisztikai vizsgálatok megmutatták, hogy a nullhipotézis feltételezésével (tehát, ha a tesztelt attribútum érdektelen a problémánk szempontjából) D egy (k-1)-edfokú (khí-négyzet) eloszlást követ. 2
A vizsgált valószínűségeloszlás sűrűségfüggvényét mutatja az f SzF ( 2 ) SzF=4 ábra két különböző szabadságfokra (SzF). A görbe SzF=10 alatti terület mindkét esetben 1. A [0,x] feletti terület azt fejezi ki, hogy D milyen valószínűséggel vesz fel értéket 0 és x között, az Terület=0,05 adott szabadsági foknál, ha a nullhipotézis teljesül. Ha D>x, akkor a jelölt kis terület mutatja a Határ 0,95 (SzF=4) Határ 0,95 (SzF=10) nullhipotézis teljesülését. Tehát ha a felső végén 5%-nyi területet elkülönítünk, akkor a határ azt mutatja, hogy az esetek 95%-ában ezen határ alatti értékeket fogunk mérni, az 5%-ában ezen határ felettieket, amikor a nullhipotézis igaz. (Az esetek 5%-ban a véletlen minták ilyen nagy D-t is létrehozhatnak, pedig nincs törvényszerű mintázat az adatokban.) Tehát, ha ezen határ feletti értéket kapunk a konkrét vizsgálatunk során, akkor 5%-nál kisebb az esélye, hogy a nullhipotézisünk teljesül, tehát visszautasítjuk.
2 2 2 táblázat: az az érték (határ), amely fölé a megadott valószínűséggel esik a mért (számított) változó az adott szabadságfok mellett: SzF P 0,5 P 0,2 P 0,1 P 0,05 P 0,01 P 0,005 P 0,001 1 0,46 1,64 2,71 3,84 6,64 7,88 10,83 2 1,39 3,22 4,61 5,99 9,21 10,60 13,82 3 2,37 4,64 6,25 7,82 11,35 12,84 16,27 4 3,36 5,99 7,78 9,49 13,28 14,86 18,47 5 4,35 7,29 9,24 11,07 15,09 16,75 20,52 6 5,35 8,56 10,65 12,59 16,81 18,55 22,46 7 6,35 9,80 12,02 14,07 18,48 20,28 24,32 8 7,34 11,03 13,36 15,51 20,09 21,96 26,12 9 8,34 12,24 14,68 16,92 21,67 23,59 27,88 10 9,34 13,44 15,99 18,31 23,21 25,19 29,59
Döntési fa nyesése: második lehetőség Hibaarány komplexitás kompromisszumon alapuló metszés Egy kétosztályos (bináris) osztályozási példa kapcsán (Baloldali szám a C1 osztályba tartozó minták száma, jobboldali a C2-be tartozó minták száma) [3000,9000] 1 2 [500,4000] 8 [2500,500] 14 [0,4500] 3 [400,100] 4 9 [100,3900] [1145,120] 10 [1355,380] 5 [80, 20] 6 [0,580] 7 [20,3300] 11 [5,100] 12 [1350, 80] 13 [0, 200] Komplexitás legyen a levelek száma (lehetne más is), a példánkban: a gyökérnél 1, a kifejtett fánál 9 Hibaarány: a gyökérnél 3000/12000 (hiszen a jobb válaszunk C2 lenne), a kifejtett fánál: (100+20+0+20+120+5+80+0+0)/12000
Hibaarány komplexitás kompromisszumon alapuló metszés Számozzuk a csomópontokat, jelölés: - az n-dik csomópontot önmagában (mintha levél lenne) jelölje n - az n-edik csomópontból kiinduló részfa Tn n [3000,5000] R(n)=3000/8000 T(n) =1 m [1000,4000] p [2000,1000] d [990,10] k [10,3990] t [650,15] r [1350,985] g [5,990] [5,3000] f R(Tn)=(10+5+5+15+985)/8000 T(Tn) =5 Hogyan hasonlítsuk össze a komplexitást a hibával?!?
Legyen a két költség aránya: α = Egységnyi komplexitás költsége Egységnyi hiba költsége Így az összetett, eredő költség: K n = R n + α T(n) illetve K Tn = R Tn + α T(Tn) eredő költség R n T(n) = 1 K Tn K n R Tn T(Tn) > 1 kritikus
kritikus amikor mindegy, hogy levágjuk-e a részfát, az összetett költség azonos az n-edik csomópontra, mint levélre, és az n-dik csomópontból kiinduló Tn részfára R n + α kritikus T(n) = R Tn + α kritikus T(Tn) α kritikus = R n R(Tn) T(Tn) T(n) = R n R(Tn) T(Tn) 1 1. Ha =0, akkor a komplexitásnak nincs ára, soha nem érdemes visszametszeni 2. 0 < < kritikus, akkor még mindig jobb nem visszametszeni 3. Ha = kritikus, akkor mindegy, hogy visszavágjuk-e 4. Ha kritikus <, akkor érdemes visszavágni, olcsóbb abbahagyni az n-dik levélnél
Gondoljuk végig, hogy mi történik, ha t folyamatosan növeljük 0-tól indulva! amelyik csomópont kritikus értékét először érjük el, ott érdemes leginkább metszeni a fát! (Persze ha a hiba nem nő túl nagyra) 1 kritikus =0,12 2 kritikus =0,088 8 kritikus =0,023 14 3 4 9 kritikus =0,062 10 kritikus =0,049 5 6 7 11 12 13 A számok légből kapottak (csak a példa kedvéért)