1/28 Klasfkace a predkce Roman LUKÁŠ
2/28 Základní pomy Klasfkace = zařazení daného obektu do sté skupny na základě eho vlastností Dvě fáze klasfkace: I. Na základě trénovacích vzorů (u nchž víme, do aké skupny patří) určení pravdel, podle nchž bude klasfkace prováděna II. Pravdla z kroku I. sou testována na ných vzorech, následně použta pro zařazování nových dat Predkce = předpověď sté hodnoty (ze spoté funkce) pro daný obekt
3/28 I. Fáze: Klasfkace: Ilustrace Trénovací data Klasfkační algortmus Jméno Jan Novák Ota Tesař Vít Tomšů Leoš Nový Věk <= 30 31..40 > 40 31..40 Příem malý velký střední velký Úvěryschopnost špatná dobrá špatná dobrá Klasfkační pravdla: If Věk = 31..40 and Příem = velký then Úvěryschopnost = dobrá II. Fáze: Trénovací data Klasfkační pravdla Nová data Jméno Věk Příem Úvěryschopnost (Jan Ryba, 31..40, velký,?) Petr Malý 31..40 velký dobrá Jakub Král <= 30 malý špatná? = dobrá
4/28 Příprava dat pro klasfkac Čštění dat = Redukce šumu v datech, upravení dat z chyběící hodnotou Významnostní analýza = odstranění nepotřebných atrbutů v datech pro danou klasfkac Transformace dat = zobecnění dat, například číselných na dskrétní hodnoty Příklad: Konkrétní zsk malý/velký Specální případ transformace: Normalzace dat Příklad: obecný nterval nterval <0, 1>
5/28 Porovnávání klasfkačních metod Přesnost předpovědí = schopnost dobře třídt neznámá data Rychlost = výpočetní složtost pro vygenerování a používání klasfkačních pravdel Robustnost = schopnost vytvořt správný model, pokud daná data obsahuí šum a chyběící hodnoty Stablta = schopnost vytvořt správný model pro velké množství dat Interpretovatelnost = ak e model složtý pro pochopení
6/28 Příklad: Rozhodovací strom Zařazení osoby do tříd: (Koupí počítač/nekoupí počítač) Věk <= 30 31..40 > 40 Student ANO Příem ne ano malý velký NE ANO NE ANO
7/28 Vytvoření rozhodovacího stromu functon nduce_tree(example_set, Propertes) : TTree; begn f all entres n Example_set are n the same class then return leaf node labeled wth ths class else f Propertes s empty then return leaf node labeled wth most common class else begn select a property P, delete t from Propertes and make t the root of the current tree; for each value V of P do begn create a branch of the tree labeled wth V; Ex_V = elements of Example_set wth V for property P call nduce_tree(ex_v, Propertes) and attach result to branch V; end; end;
8/28 Výběr vhodné vlastnost P Nechť S e množna vzorků rozdělovaných do tříd C 1,, C m Nechť s e počet vzorků z množny S ve třídě C Defnume očekávanou nformac I(s 1,, s m ) ako: m = 1,..., sn) p log2( p ) = 1 I( s p = s / S Nechť stá vlastnost P má může nabývat hodnot a 1,, a v. Proveďme rozklad S na vzáemně dsunktní podmnožny S 1,, S v S S, S ={x: vlastnost P prvku x má hodnotu a } pro = 1..v Nechť s e počet vzorků ze třídy C ve množně S Defnume entrop E(P) ako: v s1 +... + m ( ) sm E P = ( p log2 p ) p = s / S S = 1 = 1 Vybereme vlastnost P s nevětší hodnotou I(s 1,, s m ) E(P)!
9/28 Ořezání stromu 2 metody pro ořezání stromu: Preprunng = ž v průběhu vytváření stromu nesou generovány větve, které maí malý význam pro rozhodování Postprunng = nedříve vytvořen strom ako celek, teprve pak sou větve s malým významem odstraněny
10/28 Rozhodovací strom klasf. pravdla Příklad: Věk <= 30 31..40 > 40 Student ANO Příem ne ano malý Zařazení osoby do tříd: (Koupí počítač/nekoupí počítač) velký NE ANO NE ANO f Věk = <= 30 and Student = ne f Věk = <= 30 and Student = ano f Věk = 31..40 f Věk = > 40 and Příem = malý f Věk = > 40 and Příem = velký then result = NE then result = ANO then result = NE then result = NE then result = ANO
11/28 Bayesova klasfkace 1/3 Označení pravděpodobností P(X) = pravděpodobnost evu X P(H X) = pravděpodobnost evu H, pokud víme, že nastal ev X Bayessův teorém: P ( H X ) = P( X H ) P( H P( X ) )
12/28 Bayesova klasfkace 2/3 Nechť e dán stý vzorek dat X = (x 1,, x n ), který má být zařazen do edné z tříd C 1,, C m. Zařadíme e do třídy C, pro kterou platí: P(C X ) e maxmální. Protože P( X C ) P( C ) P( C X ) =, kde P(X) e konst. P( X ) hledáme maxmální P(C X) P(C )
13/28 Bayesova klasfkace 3/3 P( C ) = s s s = počet trénovacích vzorů ve třídě C s = počet všech trénovacích vzorů P( X C P(x k C ) ) = n k = 1 P( x k C ) x k e dskrétní atrbut: P ( x C ) = kde s k e počet trénovacích vzorů ze třídy C splňuící podmínku, že eho k-tý atrbut = x k x k e spotý atrbut: k s s P(x k C ) = g(x k, µ C, σ C ) kde g(x k, µ C, σ C ) e Gaussova normální funkce k
14/28 Klasfkace: NS Backpropagaton Čnnost ednoho neuronu: x 1 x 2 w 2 x n w n w 1 θ Schéma neuronové sítě: x 1 n = 1 x w + θ f x 2 O O k x w w k
15/28 NS Backpropagaton: Algortmus 1/2 Incalzační část: Incalzu všechny váhy w a basy θ lbovolným malým hodnotam Šíření vstupu k výstupu: Postupně pro každý trénovací vzor děle: Pro každý neuron ve skryté vrstvě spočíte: I = w Pro každý neuron ve výstupní vrstvě spočíte: O = O 1 I + θ
16/28 NS Backpropagaton: Algortmus 2/2 Zpětné šíření chyby: Pro každý neuron výstupní vrstvy spočíte: Err = O ( 1 O )( T O Poznámka: T e výstup, který měl vyít Pro každý neuron skryté vrstvy spočíte: Err = O (1 O ) Errk Každou váhu w modfku následovně: w = ( l) Err θ = (l) Err O w Každý bas θ modfku následovně: θ = w = θ k + w + θ Poznámka: (l) <0, 1> e tzv. koefcent učení ) w k
17/28 Další metody klasfkace k-shlukování Založeno na vytvoření k-tříd. Každá třída má svého reprezentanta. Neznámý prvek e zařazen do té třídy ehož reprezentant e nepodobněší neznámému prvku. Genercké algortmy využtí myšlenek přírodního vývoe. Fuzzy logka pravdla pro rozdělování do tříd nemaí dskrétní charakter ale spotý.
18/28 Predkce: Lneární regrese 1/2 Metoda nemenších čtverců: Y = ax + b = skutečné hodnoty x 1 x 2 x 3 x 4 Snaha naít koefcenty a, b tak, aby součet znázorněných čtverců dosáhl co nemenší hodnoty:
Predkce: Lneární regrese 2/2 19/28 = = = s s x x y y x x a 1 2 1 ) ( ) )( ( Soubor hodnot: (x 1, y 1 ), (x 2, y 2 ),, (x s, y s ) Výpočet koefcentů a, b pro regresní přímku Y = ax + b: x a y b = Poznámka: = = s x s x 1 1 = = s y s y 1 1
20/28 Y = ax 1 + bx 2 + cx 3 + d Kde: X 1 = X 3, X 2 = X 2, X 1 = X Vícenásobná a nelneární regrese Vícenásobná regrese výsledná hodnota y e závslá na více parametrech x 1, x 2,, x n Regresní funkce e potom ve tvaru: Y = a 1 X 1 + a 2 X 2 + + a n X n + b Nelneární regrese většnou transformueme na lneární regres Příklad: Y = ax 3 + bx 2 + cx + d
21/28 Testování vytvořených modelů Bloková metoda Data sou náhodně rozdělena do dvou množn: Data z 1. množny sou použta k trénovaní Data z 2. množny sou použta k testování Křížová metoda Data sou náhodně rozdělena do k množn S 1, S 2,, S k. Data z S 2,, S k sou použta k trénovaní a testování e prováděno na datech z množny S 1 Data z S 1, S 3,, S k sou použta k trénovaní a testování e prováděno na datech z množny S 2 Data z S 1,, S k-1 sou použta k trénovaní a testování e prováděno na datech z množny S k
22/28 Ukázka SAS-EM: Defnce problému Defnce problému: Předmět IFJ měl v letošním roce celkem 383 studentů. Bodové rozdělení tohoto předmětu e následuící: 1) Půlsemestrální zkouška 20b. 2) Proekt 25b. 3) Závěrečná zkouška 55b. Úkoly: 1) Pokusíme se předpovědět zda student udělal kvaltně proekt (dostal za ně mnmálně 20 bodů) pouze za předpokladu znalostí eho výsledků z 1) & 3) 2) Pokusíme se předpovědět zda student dostane z IFJ ednčku (celkový počet bodů 90) pouze za předpokladu znalostí eho výsledků z 1) & 2)
23/28 Celkový náhled na mplementac Úkol 2 Úkol 1
24/28 Data a transformace dat Dopočítané proměnné Proměnné získané z DB
25/28 Nastavení atrbutů Nastavení atrbutů pro úkol 1. Nastavení atrbutů pro úkol 2.
26/28 Úkol 1: Výsledky
27/28 Úkol 2: Výsledky
28/28 Zhodnocení výsledků Pro řešení obou úloh e nehorší alternatva použít rozhodovací strom (dskrétní charakter!) Použtí neuronové sítě regresní funkce e srovnatelné Příčny nepřesnost predkce: 1) Student má dostatečný počet bodů během semestru a nenaučí se na závěrečnou zkoušku 2) Student má naopak málo bodů během semestru a o to více se na závěrečnou zkoušku přpraví 3) Student zvládá učvo en teoretcky (hodně bodů ze zkoušek), ale neovládá prax (málo bodů z proektu)