Přednosti rozhodovacích stromů Přirozeně pracují s kategoriálními i spojitými veličinami, přirozeně pracují s chybějícími hodnotami, jsou robustní vzhledem k outliers vybočujícím pozorováním, nejsou citlivé na monotónní transformace vstupů, dost dobře se vyrovnají s nerelevantními vstupy.
Slabiny rozhodovacích stromů ejsou schopny odhalit lineární kombinace vstupů, často nebývají nejlepší v predikci (bývají dobré, ale většinou se najde nějaký ještě lepší model). Alternativy Vylepšené stromy Boosting stromů, MART, zvolit nějaký jiný přístup: lineární regrese, lineární a kvadratická diskriminační analýza, logistická regrese, optimální separující nadrovina, support vector machines (metoda podpůrných vektorů)
Lineární regrese pro klasifikaci Dvě třídy jednu třídu kódujeme 1, druhou 1, najdeme lineární model této kódované funkce. Pokud model predikuje y 0, predikujeme první třídu, jinak predikujeme druhou třídu. Hranice {x : x T β = 0} se nazývá rozhodovací hranice (decision boundary).
Separující nadrovina, optimální separující nadrovina lineární regrese rozdělí prostor x nadrovinou na části odpovídající jednotlivým třídám tato nadrovina nemusí být optimální (ani pro LDA; logistická regrese ano, pokud existuje) Perceptron (neuronová síť sestávající z jednoho neuronu) najde bezchybnou separaci, pokud tato existuje přesná pozice výsledné nadroviny závisí na (náhodně zvolených) vstupních parametrech a pořadí vstupních příkladů
Optimální separující nadrovina (separabilní případ) Můžeme definovat optimální separující nadrovinu jako takovou nadrovinu, okolo které je maximálně široký pás nikoho, a na každé straně jsou příklady jedné třídy. Formálně: max C β,β 0, β =1 za podmínek y i (x T i β + β 0) C pro všechny příklady i = 1,...,, y i { 1, 1} kóduji dvě možné cílové kategorie.
Technické úpravy: β = 1 mohu přesunout do podmínek (a změnit β 0 ): 1 β y i(x T i β + β 0 ) C Platí li podmínka pro jedno β, β 0, platí i pro jejich kladné násobky, proto můžeme zvolit β = 1 C a dostaneme: 1 min β,β 0 2 β 2 za podmínek y i (x T i β + β 0) 1 pro i = 1,...,. Jde o konvexní optimalizační úlohu, kterou řešíme pomocí Lagrangeových funkcí:
Technické úpravy 2: L P = 1 2 β 2 Derivace položíme = 0 a dostaneme: β = 0 = α i [y i (xi T β + β 0 ) 1] i=1 α i y i x i i=1 α i y i i=1 Dosazením do L P dostaneme Wolfeho duální formu: L D = i=1α i 1 2 i=1 α i α k y i y k xi T x k k=1 kterou maximalizujeme za podmínek α i 0
na což lze pustit standardní software pro konvexní optimalizační úlohy. Řešení navíc splňuje Karush Kuhn Tucker podmínku: α i [y i (x T i β + β 0 ) 1] = 0 pro každé i, proto pro každé α i > 0 musí [y i (x T i β + β 0) 1] = 0, tj. x i je na hranici, a pro všechna x i vně hranice je α i = 0. Tedy: Výsledná hranice tedy záleží jen na vektorech na hranici, které nazýváme support vectors, jsou to ty, co mají nenulové α i. Klasifikujeme pak na základě toho, na které straně nadroviny se příklad nachází, tj. Ĝ(x) = sign(x T β + β 0 ), kde β = i=1 α iy i x i, β 0 = y i x T i β pro libovolný support vector.
Optimální separující nadrovina pro neseparabilní případ e vždy existuje separující nadrovina. V takovém případě musíme připustit špatně klasifikované trénovací příklady. Připustíme tedy příklady v separujícím pruhu i na špatné straně hranice, ale omezíme součet jejich vzdálenosti od hranice. Definujeme relaxační proměnné (odchylky, slacks) jednotlivých proměnných (ξ 1,...,ξ ) = ξ takto: ξ i značí vzdálenost příkladu i od hranice jeho třídy, pokud je příklad i na špatné straně, a ξ i = 0, je li příklad na správné straně. Součet těchto vzdáleností omezíme konstantou K. Idea je následující. Hodnota ξ i měří, jak daleko je predikce
f (x i ) = x T i β + β 0 na špatné straně hranice. Omezením ξ i omezujeme celkovou vzdálenost, jakou predikce padají na špatnou stranu jejich hranice. Špatná klasifikace nastane při ξ i > 1, čili omezením ξ i < K omezíme maximum špatně klasifikovaných příkladů číslem K. Opět tedy řeším maximalizační úlohu jen se změní podmínky na: max C β,β 0, β =1 kde i je ξ i 0 a i=1 ξ i K. y i (x T β + β 0 ) C(1 ξ i )
Opět můžeme vynechat podmínku na β, definovat C = 1 β a převést na optimalizaci min β za podmínek{ y i(x T β + β 0 ) (1 ξ i ) i ξ i 0, ξ i constant (1) Řešíme tedy úlohu 1 min β,β 0 2 β 2 + γ ξ i i=1 za podmínek ξ i 0 a y i (x T β + β 0 ) (1 ξ i ) kde γ nahradilo konstantu K, můžeme položit γ = pro separabilní případ. Řešíme opět pomocí Lagrangeových multiplikátorů α i, µ i : L P = 1 2 β 2 + γ ξ i i=1 α i [y i (xi T β + β 0 ) (1 ξ i )] i=1 µ i ξ i i=1
Položením derivace rovné nula dostaneme: β = 0 = α i y i x i i=1 α i y i i=1 α i = γ µ i Dosazením dostaneme Wolfe dual: L D = i=1α i 1 2 i=1 α i α k y i y k xi T x k k=1 a maximalizujeme L D za podmínek 0 α i γ a i=1 α iy i = 0.
Řešení navíc splňuje: α i [y i (xi T β + β 0 ) (1 ξ i )] = 0 µ i ξ i = 0 [y i (xi T β + β 0 ) (1 ξ i )] 0. Řešením je: ˆβ = i=1 ˆα iy i x i s nenulovými koeficienty α i což nastává pro body na hranici, kde ξ i = 0 (a také platí 0 < α i < γ), a body na špatné straně s ξ i > 0 (pro které také platí α i = γ). Kterýkoli z bodů na hranici může být použit pro výpočet β 0, typicky se používá průměr všech řešení kvůli numerické stabilitě.
Optimální separující nadrovina shrnutí Výsledná hranice tedy záleží jen na vektorech na hranici, které nazýváme support vectors, jsou to ty, co mají nenulové α i. Klasifikujeme pak na základě toho, na které straně nadroviny se příklad nachází, tj. Ĝ(x) = sign(x T β + β 0 ), kde β = i=1 α iy i x i, β 0 = y i xi T β pro libovolný support vector s s nenulovým α a nulovým ξ. Tedy Ĝ(x) = α i y i x T x i + (y s xs T β). i=1 Parametr γ ( váhu ξ i ) musíme určit laděním.
Support vector machines Pokud jsou třídy skoro lineárně separabilní, stačí hledat optimální separující nadroviny. Support vector machines zobecňují přístup na lineárně neseparabilní, překrývající se třídy. Rozšíříme dimenzionalitu prostoru příznaků (feature space). Zvolíme M vstupních funkcí h m (x), m = 1,..., M. SVM klasifikátor pak používá vstup h(x i ) = (h 1 (x),..., h M (x)) a vytvoří (nelineární) funkci f (x) = h(x) T β + β0, klasifikovat budeme jako dříve podle Ĝ(x) = sign( f (x)).
Kernels jádra Pro výpočet funkce pro klasifikaci f (x) = h(x) T β + β 0 = i=1 α iy i h(x), h(x i ) + β 0 stačí spočítat skalární součin nového příkladu a trénovacího příkladu v transformovaném prostoru. Volíme transformovaný prostor tak, aby se snadno spočítal tento skalární součin samotný transformovaný prostor může mít hodně dimenzí (i nekonečně). Funkce, počítající skalární součin v transformovaném prostoru, se nazývají jádrové funkce (kernal functions). dth Degree polynomial: K(x, x ) = (1 + x, x ) d Radial basis K(x, x ) = exp( x x 2 c ) eural network K(x, x ) = tanh(κ 1 x, x + κ 2 )
Příklad Polynom stupně 2 na dvourozměrném vstupu: K(x, x ) = (1 + x, x ) 2 = (1 + 2x 1 x 1 + 2x 2 x 2 + (x 1 x 1) 2 + (x 2 x 2) 2 + 2x 1 x 1x 2 x 2) tj. M = 6, h 1 (x) = 1 h 2 (x) = 2x 1 h 3 (x) = 2x 2 h 4 (x) = x 2 1 h 5 (x) = x 2 2 h 6 (x) = 2x 1 x 2.
aposled o klasickém učení s učitelem Učení s učitelem na trénovacích datech známe cílovou veličinu Y nebo G. Chceme identifikovat relevantní vstupní proměnné X i, které cílovou veličinu více než málo (a přímo) ovlivňují a najít jednoduchou funkci relevantních X i do Y resp. G, která závislost dobře popisuje.
Úloha: klasifikace obarvené mapy tj. máme spojitá X, kategoriální G, minule jsme přeskočili statistické metody, dnes se k nim vracíme: lineární regrese (jednoduchá, ne nejlepší), lineární (kvadratická) diskriminační analýza s redukcí dimenze vstupních proměnných X, logistická regrese ( standardní transformace před učením lineárního modelu).
Lineární regrese pro klasifikaci K tříd Každý příklad v datech patří do (právě jedné) z k tříd G 1,..., G K. Pak zavedeme indikátory, tj. proměnné y k nabývající 1 právě když příklad patří do třídy G k, jinak y k = 0. Spočteme naráz modely pro všechny indikátory, tj. Y bude matice K a ˆB = (X T X) 1 X T Y Pro klasifikaci nového příkladu x pak nejdříve spočteme vektor predikcí indikátorů ˆf (x) = [ x, 1 ˆB] T a pak najdeme takovou třídu, jejíž indikátor nabývá největší
hodnoty, tj. Ĝ(x) = argmax k=1,...,k ˆfk (x) Při použití lineární regrese pro klasifikaci může dojít k maskování tříd, např. pro tři třídy v přímce klasifikuji vždy do jedné z krajních, střední třída nikdy nenabyde maximální hodnoty indikátoru. Poznámka: Maskování se dá zabránit přidání vyšších mocnin do modelu jenže pro jistotu by mocniny a součiny musely být až do řádu (K 1), tj. složitost O(p K 1 ), p je dimenze X.
Lineární diskriminační analýza LDA LDA dává pro 2 cílové třídy stejné predikce jako lineární regresní model. Při více třídách se vyhne maskování tříd. LDA předpokládá vícerozměrné gausovské rozdělení každé třídy se společnou kovarianční maticí, tj. k (Σ k = Σ). Za těchto předpokladů dává bayesovsky optimální odhad. f k (x) = 1 (2π) p 2 Σ k 1 2 e 1 2 (x µ k) T Σ 1 k (x µ k ) Pokud bychom upustili od předpokladu společné kovarianční matice, dostáváme kvadratickou diskriminační analýzu. k značí počet trénovacích příkladů patřících do třídy G k, π k apriorní pravděpodobnost třídy G k.
Lineární diskriminační analýza LDA ˆP(G = G k X = x) = f k(x)π k K l=1 f l(x)π l πˆ k = k f k (x) = (µ k, Σ) ˆµ k = {x i :G(x i )=G k } x i k ˆΣ = K k=1 {x i :G(x i )=G k } (x i µ k ) T (x i µ k ) ( K) Pro klasifikaci nového příkladu x predikuji G k dávající maximální δ k : δ k (x) = x T Σ 1 µ k 1 2 µt k Σ 1 µ k + logπ k
Rozklad matice na vlastní čísla a vlastní vektory Matici Σ můžeme rozložit Σ = UDU T na diagonální matici D jejích vlastních čísel d l a matici p ortonormálních vlastních vektorů U. Pak můžeme transformovat vstupní proměnné: X D 1 2 U T X kde Σ = UDU T je rozklad společné kovarianční matice, a klasifikujeme x k nejbližšímu centroidu, ovšem váženo apriorními pravděpodobnostmi tříd π k. Tento rozklad lze využít k redukci dimenze z p na K 1 (i méně, ale tuto bezztrátově).
LDA se snížením dimenze (Reduced rank LDA) Máme K centroidů (středů jednotlivých barev G k ), ty určují prostor dimenze K 1. Víc dimenzí nepotřebujeme. Fisherovo optimalizační kriterium: v nejlepší projekci jsou centroidy od sebe co nejdále porovnáváme v prostoru zakřiveném kovariancí W, maximalizujeme B. Spočti K p matici M centroidů (středů) µ k, společnou kovarianční matici W = K k=1 {xi :G(x i )=G k } (x i µ k ) T (x i µ k ) ( K) kovariance uvnitř tříd, celkový střed µ = K i=1 π kµ k, spočti matici B = K k=1 π k(µ k µ)(µ k µ) T kovarianční matice mezi třídami.
Technické výpočet kanonických proměnných B = (W 1 2 ) T BW 1 2 Rozložíme B = V D B (V ) T na vlastní vektory a matici vlastních čísel, V = (v 1, v 2,..., v p), nejlépe diskriminuje první vlastní vektor b = v 1, pak druhý atd. vrátíme se do původních souřadnic a l = W 1 2 v l, a l se nazývají kanonické proměnné.
Proč o tom mluvím? Stojí za snahu hledat ty nejdůležitější vstupní proměnné. Jiné možnosti: přidávat korelované s cílovou veličinou ubírat nekorelované naučit rozhodovací strom a vzít ty použité....
Logistická regrese Logistická regrese hledá lineární model logaritmu podílu pravděpodobností, že daný příklad spadá do jednotlivých tříd. Pokud klasifikujeme do K tříd, hledáme 2 (K 1) následujících parametrů β. log P(G = G 1 X = x) P(G = G K X = x) = β 10 + β T 1 x log P(G = G 2 X = x) P(G = G K X = x) = β 20 + β T 2 x log P(G = G K 1 X = x) P(G = G K X = x) = β (K 1)0 + β T K 1x.
tj. P(G = G k X = x) = P(G = G K X = x) = e β k0+β T k x 1 + l=1,...,k 1 e β l0+βl T x 1 1 + l=1,...,k 1 e β l0+βl T x Hledám takové parametry β, které maximalizují logaritmus věrohodnosti, tj. (g i je správná cílová třída v příkladu (x i, g i )) log ˆP(G = g i X = x i ). i=1 Z derivací této funkce podle β nám nevyjde úplně jednoduchý vzorec, tento model musím učit iterativně (pro dvě třídy metodou vážených nejmenších čtverců).