Klasyfkator lnowy Wstęp Klasyfkator lnowy jest najprostszym możlwym klasyfkatorem. Zakłada on lnową separację lnowy podzał dwóch klas mędzy sobą. Przedstawa to ponższy rysunek: 5 4 3 1 0-1 - -3-4 -5-5 -4-3 - -1 0 1 3 4 Gdze dwe klasy oddzelone są hperpłaszczyzną, która dla przestawonego przypadku redukuje sę do ln prostej w n-wymarowej przestrzen. Funkcje taką nazywamy funkcją decyzyjną g x = wx = w 1 x 1 + w x + + w n x n Gdze w szukany wektor wag x wektor wejścowy/wektor sygnału wejścowego Funkcja decyzyjna rozdzela węc obydwe klasy określa wyjśce modelu wg. zależnośc g x > 0 - klasa c1 g x < 0 - klasa c
W pewnych sytuacjach dyskrymnacja lnowa ne jest możlwa do osągnęca, jak na ponższym obrazku, 8 6 4 0 - -4-6 -8-6 -4-0 4 6 dlatego też częśd model lnowych uwzględna taką możlwośd poprzez mnmalzację lczby popełnanych błędów. Do typowych model dyskrymnacj lnowej można zalczyd: algorytm Rosenblatta algorytm Fshera algorytm mnmalzacj MSE czyl wykorzystane regresj lnowej Algorytm Rosenblatta Algorytm Rosenblatta zakłada lnową separowalnośd klas. Stara sę on mnmalzowad funkcję kosztu zdefnowaną jako: J( w) ( w x) x Gdze - zbór wektorów błędne klasyfkowanych. Algorytm Rosenblatta można opsad w postac mnkodu
t numer teracj w wektor wag C(x) funkcja zwracająca etyketę klasy dla wektora x m lczba wektorów uczących t = 0 w = generuj losowo w początkowe b = generuj losowo repeat t 0 =t; for =1:m g = w x +b; f (C(x )=1) and (g<0) => w=w+x ; t=t+1 b = b g; f (C(x )=-1) and (g>0) => w=w-x ; t=t+1 b = b g; untl t 0 =t lub z dorbną modyfkacja zapewnającą lepszą zbeżnośd procesu optymalzacj. t numer teracj w wektor wag C(x) funkcja zwracająca etyketę klasy dla wektora x m lczba wektorów uczących (j) współczynnk uczena -> funkcja malejąca w czase np. () t 1 t 1 t = 0 w = generuj losowo b = generuj losowo for t=1:max_ter for =1:m g = w x +b; f (C(x )=1) and (g<0) => w=w+(t)x b = b (t)*g; f (C(x )=-1) and (g>0) => w=w-(t)x b = b (t)*g; Algorytm Fshera Algorytm Fshera jest klasyfkatorem wywodzącym sę z metod statystycznych. Zakłada on, że rozkłady poszczególnych klas mają rozkład Gaussa. Przyjmując oznaczena
- wektor opsujący średne poszczególnych klas (środk rozkładów Gaussa) Σ y = 0,Σ y = 1 - macerze kowarancj poszczególnych klas I defnując funkcje kosztu jako loraz rozproszeo mędzyklasowych w stosunku do rozproszeo wewnątrz klasowych jako: można pokazad że optymalnym rozwązanem tak postawonego problemu jest hperpłaszczyzna w określona zależnoścą: Gdze wartośd wyrazu wolnego wynos UWAGA Uwaga na znak we wzorze na w!!! b = µ y =1+µ y =0 w Wykorzystane regresj lnowej Jednym z często stosowanych algorytmów jest wykorzystane regresj lnowej. W tym przypadku funkcja celu zdefnowana jest jako mnmalzacja błędu średnokwadratowego opsanego zależnoścą: Gdze J x w x y w x y m 1 y por zadane wyjśce Wówczas szukając mnmum tak zdefnowanej funkcj celu uzyskujemy pochodną: Którą mnmalzując ze względu na w uzyskujemy rozwązane: Gdze w = X X 1 X y = X y X = X X 1 X - macerz pseudoodwrotna Zadana Zad 1) Zamplementuj klasyfkator lnowy Rosenblatta. m w x y x X Xw Y J 1
Zad ) Zamplementuj klasyfkator lnowy Fshera, pamętaj o wyraze wolnym. W tym celu doklej go do kooca wektora w jako w = [w b] Przydatne funkcje C = cov(x) zwraca macerz kowarancj macerzy x M = mean(x) zwraca wartośd średną dla każdej kolumny macerzy x S = std(x) zwraca odchylene standardowe dla każdej kolumny macerzy x V = var(x) zwraca warancję dla każdej kolumny macerzy x Zad 3) Zamplementuj klasyfkator lnowy w oparcu o regresję lnową Uwaga: Pamętaj o wyraze wolnym. Wykorzystując metodę regresj do zboru danych uczących doklej kolejną kolumnę wypełnoną wartoścam 1, pełnącą rolę wyrazu wolnego. Np. x- dane trenngowe wejścowe Y etykety klas nx = [x ones(sze(x,1),1)]; wówczas po wyznaczenu wektora w podczas klasyfkacj danych testowych równeż mussz dokled kolumnę z wartoścam 1. Zad 4) Zwzualzuj uzyskane wynk na przykładze zboru Gaus1 oraz Gaus. Zad 5) Porównaj dokładnośd zamplementowanych metod na zborach danych WBC Wsconsn Brest Cancer Pma - Pma Indan Dabetes Ionosphere W tym celu podzel każdy zbór danych wcześnej przygotowanym algorytmem podzel, dokonaj uczena modelu na zborze trenngowym, a następne wykonaj testowane wyznaczając błąd na zborze testowym. UWAGA Każdy z Algorytmów zamplementuj jako nową funkcję: Rozenblatt_ucz, Fsher_Ucz oraz Reg_ln_ucz Każda z funkcj pownna zwrócd parametr w opsujący równane prostej, Uzyskany wynk przekaż do jednej funkcj ln_test dokonaj klasyfkacj.