Učení založené na instancích Instance based learning
Charakteristika IBL (nejbližších sousedů) Tyto metody nepředpokládají určitý model nejsou strukturované a typicky nejsou příliš užitečné pro porozumění vztahu mezi příznaky a cílovými třídami jsou užitečné a často velmi efektivní black box nástroje pro klasifikaci k NN lze použít i pro regresi, ale bias variance tradeof není tak optimistický jako u klasifikace
IBL Příprava dat: Prostor atributů či příznaků nejdříve standardizuji tak, aby každý příznak/atribut měl střední hodnotu 0 a rozptyl 1 (přes všechny cílové třídy dohromady). Trénování v IBL probíhá tak, že pouze ukládáme příchozí data do paměti. Teprve, když přijde požadavek na klasifikaci (či predikci) nového případu, začneme tvořit model, k nejbližších sousedů najde k nejbližších příkladů z trénovací databáze a klasifikuje nový příklad podle nejčastější klasifikace těchto k případů.
k nejbližších sousedů (k NN, nearest neighbours) Definuji: G je množina cílových tříd δ(g 1, g 2 ) = 1 právě když g 1 = g 2, jinak δ(g 1, g 2 ) = 0. Klasifikace probíhá ve dvou krocích. Pro novou instanci x: 1. najdi k nejbližších instancí k x v data, označ je x 1,..., x k. 2. return ĝ(x) = argmax g G i=1 k δ(g, g(x i))
Metrika pro nalezení k nejbližších sousedů můžeme volit např. následující: euklidovská d(x i, x j ) = n r=1(a r (x i ) a r (x j )) 2 ) Hammingova (Manhattan) d(x i, x j ) = n r=1 a r (x i ) a r (x j ) překrytí (overlap) pro kategorická data kosínová d(x i, x j ) = d(x i, x j ) = n r=1(1 δ(a r (x i ), a r (x j ))) r=1(a n r (x i ) a r (x j )) r=1(a n r (x j ) a r (x j )) r=1(a n r (x i ) a r (x i ))
příliš mnoho dat k ukládání 1 NN je citlivé na šum Problémy k zlepšení k NN je pomalé na velké bázi dat mají li všechny atributy stejnou váhu, pak je irelevantní atribut zmate problém velké dimenzionality
Idea komprese: ukládat jen špatně klasifikované vzhledem k předchozím to ale může vyhodit užitečné příklady ráda ukládá chybná (noisy) data, protože jsou špatně klasifikovaná ale idea je dobrá, jen potřebuje dopracovat
IB3 Idea: ukládat s každým exemplářem, kolikrát predikoval dobře a kolikrát ne. vymažu ty, co perdikují špatně nové instance predikuji na základě těch, co predikují výborně (acceptable) ty mezi držím a testuji počítám, kolikrát by predikovaly dobře a kolikrát špatně vážený průměr argmax g k i=1 δ(g(x i), g) si N i
CD {} % Concept Description pro každý příklad x data IB3 algoritmus pro každé u CD : dist(u) = distance(u, x) pokud existuje výborně predikující u CD pak u min argmin u;u acceptable dist(u) jinak u min náhodně vybraná instance z CD pokud g(x) = g(u min ) % nesprávná predikce pak CD CD {x} pro každé u CD pokud dist(u) dist(u min ) aktualizuj záznam předpovědí u pokud u predikuje špatně, vyhoď CD CD \ {u}
Interval věrohodnosti úvod Na posousení kvality predikce potřebujeme intervaly věrohodnosti, pro ně potřebujeme znát: p s N pravdivá míra úspěšnosti počet správných predikcí celkový počet predikcí Veličina s má binomické rozložení. Odtud můžeme stanovit interval s N zσ, s N + zσ, ve kterém se skutečná hodnota p na 75% nachází (75%= 1 2 α).
Interval věrohodnosti návod Pro velké N binomické rozložení konverguje k normálnímu rozložení o střední hodnotě N p a rozptylu σ 2 = N p (1 p), po normalizaci dostaneme ( f = s N ) N(0, 1). Hledáme z, aby P( z < pro dané f = s N f p p(1 p) N f p p(1 p) N a α najdu v tabulce z p = < z) = 1 2α puntičkáři přepočtou hranice pro p, tj. dosadí do ( f + z2 2N ± z f N f 2 N + z2 ( 1 + z2 N ) 4N 2 ) já odhadnu: s N z s N (1 s N ) N p s N + z s N (1 s N ) N.
IB3 proměnné pravděpodobnost jednotlivých tříd označíme ˆp j, počet dosud zpracovaných příkladů ˆN. pro každou třídu vždy spočteme l apri, u apri, l apri = ˆp j 1, 15 u apri = ˆp j + 1, 645 ˆp j (1 ˆp j ) ˆN ˆp j (1 ˆp j ) ˆN pravděpodobnost úspěšnosti instance inst označme ˆp inst, počet jejích pokusů o predikci ˆN inst. pro blízké instance spočteme l inst, u inst, l inst = ˆp inst 1, 645 u inst = ˆp inst + 1, 15 ˆpinst (1 ˆp inst ) ˆN inst ˆpinst (1 ˆp inst ) ˆN inst
IB3 hodnocení instancí Odstranit příklad jako špatný? Volíme α = 12, 5%, tj. z = 1, 15. pro apriorní pravděpodobnost třídy, tj. kdybych neshromažďovala žádné příklady, jen četnost tříd; dostanu interval l apri, u apri pro daný příklad, tj. p inst = s inst N inst l inst, u inst a N inst, dostanu interval pokud u inst < l apri, tak instance predikuje špatně, vyhodit Použít příklad pro predikci? Volíme α = 5%, tj. z = 1, 645. pro apriorní pravděpodobnost třídy dostanu interval l apri, u apri pro daný příklad, tj. p inst a N inst, dostanu interval l inst, u inst pokud u apri < l inst, tak instance predikuje výborně, používat