DATA MINING KLASIFIKACE DMINA LS 2009/2010
Osnova co je to klasifikace typy klasifikátoru typy výstupu jednoduchý klasifikátor (1R) rozhodovací stromy
Klasifikace (ohodnocení) zařazuje data do předdefinovaných skupin tříd učení s učitelem algoritmus se učí charakteristiku tříd na trénovací množině na datech, pro které známe jejich příslušnost ke skupinám
Příklady rozpoznávání vzorů diagnostikování rozhodování o udělení úvěrů detekovaní chyb v aplikacích klasifikace finančních a obchodních trendů
x 2 : výkon Příklad Třída "rodinné auto" cíl - predikování: Je auto x rodinným autem? naučit se rozlišovat vzor "rodinné auto" jaké vlastnosti má mít? trénovací množina: pozitivní a gativní příklady atributy x 1 : cena x 2 : výkon y = 1 pokud x je pozitivní příklad 0 pokud x je gativní příklad x 1 : cena
Definice množina dat D = {d 1,..., d n } množina tříd C = {C 1,..., C m } klasifikační problém definovat zobrazení f: D C, kde pro každé d i je definovaná právě jediná třída. Třída C j obsahuje právě ty prvky, které se pomocí funkce f zobrazí do této třídy, tj. C j = {d i f(d i ) = C j, pro všechna d i D}
Fáze klasifikace vytvoření modelu na základě trénovací množiny aplikace modelu na klasifikování dat, které byly v trénovací množině learning data model testing data
x 2 : výkon Příklad - pokračování třída T: (c 1 cena c 2 ) AND (v 1 výkon v 2 ) v 2 T v 1 c 1 c 2 x 1 : cena
x 2 : výkon Příklad - pokračování třída T: (c 1 cena c 2 ) AND (v 1 výkon v 2 ) jobecnější hypotéza v 2 T jkonkrétnější hypotéza v 1 c 1 c 2 x 1 : cena prostor verzí
Modely a reprezentace znalostí rozhodovací stromy algoritmy na tvorbu rozhodovacích stromů (např. ID3, C4.5) klasifikační pravidla slučno rozhodovací stromy klasifikační pravidla jednoduchý algoritmus 1R např. if (x = 1) and (y = 0) then class = a počasí zataženo deštivo vlhkost větrno vysoká normální
Modely a reprezentace znalostí parametry modelů modely + parametry (statistické modely, uronové sítě) výška pohlaví malý střední vzrůst vysoký reprezentace založená na instancích učení založené na vzdálenostech (k-arest ighbour)
Vyhodnocování modelů výkon trénování na trénovací množině vyhodnocování pomocí dat z testovací množiny
x 2 : výkon motoru Klasifikace příklad (pokračování) h(x) = 1 pokud x je pozitivní příklad 0 pokud je x gativní příklad falešně pozitivní e 2 C falešně gativní Chyba h e 1 E ( h T ) 1 N t N 1 ( h( x t ) r t ) p 1 p 2 x 1 : cena
Výsledky pro problém s 2 třídami Skutečná třída Ano Ne Predikovaná třída true positive (TP) false positive (FP) false gative (FN) true gative (TN)
Výsledky pro problém s 2 třídami true positive rate tp TP TP FN false positive rate fp FP FP TN celková úspěšnost accuracy = TP TP TN TN FP FN sensitivity = tp specificity = 1 - fp FP TN TN
x 2 : výkon motoru Složitost modelů angl. model complexity e 2 C Používání jednodušších modelů jednodušší použití (menší výpočetní složitost) jednodušší trénování (menší prostorová složitost) snáze pochopitelné (lepší interpretace) lepší schopnost geralizace (Occamova břitva) e 1 p 1 p 2 x 1 : cena C: (p 1 cena p 2 ) AND (e 1 výkon motoru e 2 )
Occamova břitva Occam's razor Anglický františkánský mnich William Occam (Ockham) vysvětlení libovolného fenoménu by mělo používat co jméně předpokladů eliminovat ("oholit") ty, které mění predikce proměnných v hypotéze bo teorii vysvětlující nějaký fenomén Pokud jsou všechny věci stejné, jednodušší řešení je lepší." = pokud existuje několik konkurujících si teorií rovnocenných v ostatních ohledech, princip doporučuje volit teorii, která zavádí méně předpokladů výsledkem jsou méně hypotetické (jednodušší) entity
Inference jednoduchých pravidel 1R 1R (1 rule) - jednoduchá klasifikace instancí rozhodnutí na základě jednoho atributu postup: pro všechny atributy vytvoření množiny pravidel tak, že každé pravidlo zodpovídá jedné hodnotě atributu přiřazení té třídy, která se pro du hodnotu atributu jčastěji vyskytuje vypočítaní error rate (1-accurracy) výběr stromu s jmenším error rate
Příklad: Rozhodnutí, zda jít hrát golf? Počasí Teplota Vlhkost Větrno Hrát? slučno horko vysoká slučno horko vysoká zataženo horko vysoká deštivo akorát vysoká deštivo chladno normální deštivo chladno normální zataženo chladno normální slučno akorát vysoká slučno chladno normální deštivo akorát normální slučno akorát normální zataženo akorát vysoká zataženo horko normální deštivo akorát vysoká
1R: příklad Počasí Teplota Vlhkost Větrno Hrajeme? slučno horko vysoká slučno horko vysoká zataženo horko vysoká deštivo akorát vysoká deštivo chladno normální...... Atribut Pravidlo Chyba Celková chyba počasí slučno 2/5 4/14 zataženo 0/4 deštivo 2/5 teplota horko 2/4 5/14 akorát 2/6 chladno 1/4 vlhkost vysoká 3/7 4/14 normální 1/7 větrno 2/8 5/14 3/6
Chybějící hodnoty Záznamy s chybějícími hodnotami doplnit jako další hodnotu např. pro atribut počasí - hodnoty: slučno, zataženo, deštivo, uvedeno vypočítat dle jistých pravidel vychat záznam
Numerické hodnoty diskretizace např. teplota s číselnými hodnotami 18 18 20 20 21 22 22 22 24 24 27 27 28 29 a n a a a n n a a a n a a n a n a a a n n a a a n a a n vyhnout se přeučení aspoň 3 z 1 třídy v intervalu pokud následuje stejná hodnota, také přidat do intervalu
Vlastnosti výsledky studie z roku 1993 v porovnání se sofistikovanými přístupy mělo 1R poměrně dobré výsledky (srozumitelnější) diskretizace - aspoň 6 z 1 třídy
Rozhodovací stromy rozděl a panuj postup vyber atribut a umísti ho do kořenu vytvoř větve pro různé hodnoty atributů množina instancí se rozdělí na podmnožiny rekurzivně aplikuj postup pro každou větev
Rozhodovací stromy příklad s počasím slučno počasí zataženo deštivo vlhkost větrno vysoká normální vnitřní uzly listy větve atributy klasifikace hodnoty atributů, podmínky
Definice Je dána množina dat D = {d 1,..., d n }, kde d i = <d i1,..., d im > jsou hodnoty atributů {A 1,..., A m } jednotlivých instancí Rozhodovací strom pro množinu tříd C = {C 1,..., C m } je strom asociovaný s D mající následující vlastnosti: každý vnitřní uzel je označený atributem A k každá hrana je označená predikátem aplikovatelným na atribut asociovaný s rodičem každý list je označený třídou C j počasí slučno zataženo deštivo vlhkost větrno vysoká normální
Vlastnosti algoritmů pro tvorbu rozhodovacích stromů výběr atributů a pořadí jejich výběru abychom vytvářeli co jjednodušší stromy rozdělení pro vybraný atribut rozhodnout, jak rozdělit hodnoty (např. numerické hodnoty) stromová struktura tvorba vyvážených stromů, binárních stromů kritéria na zastavení jestliže dokonale modeluje trénovací data, může dojít k přeučení
Vlastnosti algoritmů pro tvorbu rozhodovacích stromů trénovací data příliš malá: strom musí byť správně určen příliš velká: strom může být přeurčený ořezávaní (angl. prunning) modifikace již zkonstruovaného stromu odstranění nadbytečných porovnávaní, odstranění podstromu pro dosažení lepších výsledků
Výběr atributů rozvětvení Algoritmus ID3 Snaha vytvářet co jjednodušší stromy měření vhodnosti výběru: informace množství informace informační zisk GINI index
Množství informace Příklad: Hra "Na co myslím?" otázka dítěte: "Je to míč?"; "Je to auto?", "Je to pes?" všechny možnosti rozdělí na 1 možnost a zbytek = vše 1 2 množiny s naprosto odlišnou kardinalitou otázka dospělého:"je to živé?" všechny možnosti rozdělí na 2 přibližně stejně velké množiny množstvo informace potřebné pro určení třídy pro daný atribut měřeno v bitech na rozdíl od klasické informatiky vyjadřujeme množství informace ve zlomcích bitů (obyčejně < 1)
Množství informace Vlastnosti míry: 1. pokud je počet bo počet je 0, hodnota je 0 2. pokud počet a je stejný, hodnota dosahuje maxima 3. míra má vlastnost vícestupňovosti rozdělení v stromu na 3 části je ekvivalentní rozdělení na 2 části a dále rozdělení jedné části na 2 x x 3 >3 3 >3 10 >10 x 10 >10
Množství informace entropie měří množství jistoty (překvapení, náhodnosti) v množině dat H ( p 1 1, H ( p, p p 2 2,...,,..., p p n n ) ) n i 1 n p i p log( 1 / i log p p i i ) 1 0,9 0,8 0,7 0,6 0,5 i 1 0,4 logaritmus se základem 2 0,3 0,2 0,1 0 0,05 0,15 0,25 0,35 0,45 0,55 0,65 0,75 0,85 0,95 H(p, 1-p)
Množství informace slučno počasí zataženo deštivo pro každou větev možného rozdělení info() v hranaté závorce: počty *, ] slučno: info([2,3]) H(2/5, 3/5) = 0.4 x log 0.4 0.6 x log 0.6 zamračeno: = 0.971 info([4,0]) H(4/4,0/4) = 1 x log 1 0 = 0 deštivo: info([3,2]) H(3/5,2/5) = 0.971 H ( p n n n i, p,..., p ) p log p p p log 1 2 n i i i i i 1 i 1 ln ln p 2 ln 1 2 i 1 p i
Průměrné množství informace průměrné množství informace pro uzel (atribut) množství informace pro jednotlivé větve vážené počtem instancí info(a) S p( D i )info ( D i ) i 1 pro rozdělení podle atributu a rozdělujícího D na {D 1,..., D S } Příklad: pokračování info(počasí) = (5/14) x 0.971 + (4/14) x 0 + (5/14) x 0.971 = 0.693
Informační zisk information gain zisk rozdělení představuje rozdíl mezi tím, kolik je třeba znát informací před a kolik po rozdělení Určuje se pro rozdělení podle atributu a rozdělujícího D na {D 1,..., D S } gain(a) info ( D ) S p( D i )info ( D i ) i 1 Spočítá se pro všechny atributy a vybere se atribut s jvyšším ziskem
Příklad pokračování gain(počasí) = info([9,5]) info([2,3],[4,0],[3,2]) = 0.247 info([9,5]) = ( 9/14) x log(9/14) 5/14 x log(5/14) = 0.940 info([2,3],[4,0],[3,2]) = 0.693 gain(teplota) = info([9,5]) info([3,1],[4,2],[2,2]) = 0.940 0.911 = 0.029 gain(vlhkost) = 0.152 gain(větrno) = 0.048 jako kořen stromu je vybrán atribut počasí chladno teplota akorát horko
Příklad pokračování určit další dělící atribut počasí slučno teplota zataženo deštivo chladno horko gain(teplota)=info([2,3])- info([1,0],[1,1],[0,2]) info([2,3]) = (2/5) x log(2/5) (3/5) x log(3/5)= 0.971 akorát H(1/1,0/1) = 1xlog1 0xlog0 = 0 H(1/2,1/2) = 0.5 x log0.5 0.5 x log0.5 = 1 H(0/2,2/2) = 0xlog0 1xlog1 = 0 info([1,0],[1,1],[0,2])=(1/5)x0 + (2/5)x1 + (2/5)x0 =0.4 gain(teplota) = 0.571
Příklad pokračování určit další dělící atribut počasí počasí slučno vlhkost deštivo zataženo slučno větrno deštivo zataženo vysoká normální gain(vlhkost)=info([2,3]) - info([0,3],[2,0]) info([2,3]) = 0.971 H(2/2,0/2) = 0 ; H(0/3,3/3) = 0 info([0,3],[2,0]) = 0 gain(vlhkost) = 0.971 gain(větrno)=info([2,3]) info([1,2],[1,1]) info([2,3]) = 0.971 H(1/3,2/3) = 0.918 H(1/2,1/2) = 1 info([2,2],[1,1]) = 0.951 gain(větrno) = 0.020
Kočné řešení jvyšší informační zisk ve větvi "slučno" má vlhkost slučno vlhkost počasí zataženo deštivo větrno pro větev "deštivo" má jvyšší informační zisk atribut větrno vysoká normální atribut teplota ní ve stromu zahrnut
ID3: vlastnosti umí pracovat s chybějícími hodnotami umí pracovat se spojitými atributy provádí prořezávání stromu (přeučení) preferuje rozdělení na přibližně stejně velké množiny
Algoritmus C4.5 řeší chybějící hodnoty atributů spojité hodnoty atributů prořezávání rozdělování
Chybějící hodnoty při tvorbě stromu: instance se ignorují hodnota "chybí" při klasifikaci: podle jiných atributů vezmou se větve pro všechny hodnoty atributu, jehož hodnota chybí (vyvážení výsledků) pokud je to jednoznačné, vezme se většina, bo se klasifikuje
Spojité hodnoty rozdělení na intervaly na základě hodnot v trénovací množině např. pomocí maximalizování informace
Prořezávání angl. prunning jednodušší stromy mají často lepší výsledky jako složitější pre-prunning v průběhu tvorby stromu rozhodování, kdy skončit s vytvářením stromu post-prunning prořezávání už vytvořeného stromu (častější) strategie nahrazení podstromu (angl. subtree replacement) zdvižení podstromu (angl. subtree raising)
Nahrazení stromu strom je nahrazený listem, pokud toto nahrazení způsobí malou změnu error rate A B C D E
Nahrazení stromu strom je nahrazený listem, pokud toto nahrazení způsobí malou změnu error rate A B C E
Nahrazení stromu strom je nahrazený listem, pokud toto nahrazení způsobí malou změnu error rate A C E