Jak obliczyć wagi kryterium Fishera?


12

Studiuję rozpoznawanie wzorców i uczenie maszynowe i natrafiłem na następujące pytanie.

Rozważ problem z klasyfikacją dwóch klas z jednakowym prawdopodobieństwem wcześniejszej klasy

P(D1)=P(D2)=12

oraz rozkład instancji w każdej klasie podany przez

p(x|D1)=N([00],[2001]),

p(x|D2)=N([44],[1001]).

Jak obliczyć wagi kryterium Fishera?

Aktualizacja 2: Obliczona waga dostarczona przez moją książkę to: .W=[−43−29]

Aktualizacja 3: Jak sugeruje @xeon, rozumiem, że powinienem ustalić linię projekcji dla dyskryminatora Fishera.

Aktualizacja 4: Niech będzie kierunkiem linii rzutowania, następnie liniowa metoda dyskryminacji Fishera stwierdza, że ​​najlepsze to takie, dla którego funkcja kryterium jest zmaksymalizowana. Pozostałe wyzwanie polega na tym, jak uzyskać liczbowo wektor ?W WWWW


Twoja pierwsza dystrybucja jest niezdefiniowana. W szczególności drugi wariant pary ma rozkład zdegenerowany z wariancją 0, ale ma dodatnią kowariancję z pierwszą zmienną, co jest niemożliwe.
— owensmartin

@ owensmartin czy masz pojęcie, jak te wartości są obliczane?
— Dr Hoshang

Jaka jest definicja wagi kryterium Fishera?
— Vladislavs Dovgalecs

Mam na myśli to, że liniowy dyskryminator Fishera jest podawany przez wektor w, który maksymalizuje ... jest odnotowany na każdym materiale, takim jak luthuli.cs.uiuc.edu/~daf/courses/Learning/Kernelpapers/... na str. 2. czy jest w porządku @xeon?
— Dr Hoshang

Wskazówka: jaka będzie granica między dwiema klasami? Liniowy, wielomianowy, coś jeszcze?
— Vladislavs Dovgalecs

Odpowiedzi:


11

Zgodnie z dokumentem, do którego linkujesz (Mika i in., 1999) , musimy znaleźć które maksymalizuje tak zwany uogólniony iloraz Rayleigha ,w

w⊤S.bww⊤S.W.w,

gdzie dla średnich i kowariancji C 1 , C 2 ,m1,m2)do1,do2)

S.b=(m1-m2))(m1-m2))⊤,S.W.=do1+do2).

S.bw=λS.W.w,
λ wSB-λSW=( 16 - 3 λ 16 16 16 - 2 λ ).
det(S.b-λS.W.)=0
w
S.b-λS.W.=(16-3)λ161616-2)λ).

Wektor własny o największej wartości własnej maksymalizuje iloraz Rayleigha. Zamiast wykonywać obliczenia ręcznie, rozwiązałem uogólniony problem wartości własnych w Pythonie za pomocą scipy.linalg.eigi otrzymałem co różni się od rozwiązania znalezionego w książce. Poniżej nakreśliłem optymalną hiperpłaszczyznę znalezionego wektora ciężaru (czarny) i hyerplane wektora ciężaru znalezionego w książce (czerwony).

w1≈0,5547,w2)≈0,8321,

wprowadź opis zdjęcia tutaj


1
Ten przykład jest bardzo interesujący. Obie linie oddzielają dwie klasy, ale jedna z nich jest „lepsza” z punktu widzenia teorii uczenia się.
— Vladislavs Dovgalecs,

2
Kryterium Fishera opisano szczegółowo w sekcji 5-2-3 na books.google.com/…
— nini

1
@Lucas może wynik jest bliski komentarzom Xeona: „Być może powinniśmy zgłosić wektor jednostkowy w, ponieważ hiperpłaszczyzna jest określona przez kierunek, a nie przez wielkość”. Prawda?
— nini

1
Och !!! trudne pytanie, polecam wszystkim, aby zobaczyć stronę 2 na dml.ir/wp-content/uploads/2012/04/SPR-S12-M-Sol.pdf
— użytkownik153695

1
@Lucas Thanks. czy mógłbyś dodać kolejne zdjęcie dla W = [- 2/3 -2/3] i W = [- 4/3 -2/3] i W = [- 2-3] w trzech różnych kolorach, aby zobaczyć granicę? Dzięki. Dałem ci nagrodę za miłą odpowiedź.
— nini

7

S.OL.UT.jaON.1:

W ślad za Dudą i in. (Pattern CLassification), który ma alternatywne rozwiązanie dla @lucas iw tym przypadku daje bardzo łatwe do obliczenia rozwiązanie ręcznie. (Mam nadzieję, że to alternatywne rozwiązanie pomaga !! :))

W dwóch klasach LDA celem jest:

wT.S.bwwT.S.W.w co oznacza po prostu, że zwiększa wariancję między klasami i zmniejsza wariancję wewnątrz klasy.

gdzie i , tutaj są macierzą kowariancji, a są odpowiednio klasami 1 i 2.S.b=(m1-m2))(m1-m2))T.S.W.=S.1+S.2)S.1,S.2)m1,m2)

Rozwiązaniem tego uogólnionego ilorazu Raleigha jest uogólniony sonda wartości własnej.

S.bw=λS.W.w→S.W.-1S.bw=λw

Powyższy preparat ma postać zamkniętą. jest macierzą rangi 1 na podstawie więc którą można normować, aby uzyskać odpowiedź.S.bm1-m2)w∝S.W.-1(m1-m2))

Właśnie obliczyłem i otrzymałem [0,5547; 0,8321].w

S.W.-1(m1-m2))=(S.1+S.2))-1(m1-m2))=([2)001]+[1001])-1([00]-[44])=([1/3)001/2)])([00]-[44])=[-1,3333-2,0000]∝[0,55470,8321]

Patrz: Klasyfikacja wzorów według Dudy, Hart, Stork

S.OL.UT.jaON.2):

Alternatywnie można to rozwiązać, znajdując wektor własny w uogólnionym problemie wartości własnej. S.bw=λS.W.w

Wielomian w lambda można utworzyć za pomocą a rozwiązaniem tego wielomianu będzie wartość własna dla . Powiedzmy teraz, że masz zestaw wartości własnych jako pierwiastki wielomianu. Teraz podstaw i uzyskaj odpowiedni wektor własny jako rozwiązanie układu liniowego równań . Robiąc to dla każdego i, możesz uzyskać zestaw wektorów i jest to zestaw wektorów własnych jako rozwiązań.remitmirmjanzant(S.b-λS.W.)S.bw=λS.W.wλ1,λ2),...,λn,λ=λja,ja∈{1,2),..,n}S.bwja=λjaS.W.wja{wja}ja=1n

remitmirmjanzant(S.b-λS.W.)=[16-3)λ161616-2)λ]=6λ2)-80λ , więc wartości własne są pierwiastki wielomianowe .6λ2)-80λ

Zatem 0 i 40/3 to dwa rozwiązania. Dla LDA rozwiązaniem jest wektor własny odpowiadający najwyższej wartości własnej.λ=

Rozwiązanie układu równań i(S.b-λjaS.W.)wja=0λja=40/3)

który okazuje się być[16-3)λ161616-2)λ]wja∝[-724848-32]wja=0

Rozwiązaniem powyższego układu równań jest który jest taki sam jak poprzednie rozwiązanie.[-0,5547-0,8321]∝[0,55470,8321]

Alternatywnie możemy powiedzieć, że leży w pustej przestrzeni .[0,55470,8321][-724848-32]

W przypadku dwóch klas LDA rozwiązaniem jest wektor własny o najwyższej wartości własnej. Ogólnie rzecz biorąc, dla LDA klasy C rozwiązanie stanowią pierwsze wektory własne C - 1 o najwyższych wartościach własnych C - 1.

W tym filmie wyjaśniono, jak obliczać wektory własne dla prostego problemu z wartością własną. ( https://www.khanacademy.org/math/linear-algebra/alternate_bases/eigen_everything/v/linear-algebra-finding-eigenvectors-and-eigenspaces-example )

Oto przykład. http://www.sosmath.com/matrix/eigen2/eigen2.html

Wieloklasowy LDA: http://en.wikipedia.org/wiki/Linear_discriminant_analysis#Multiclass_LDA

Obliczanie pustej przestrzeni macierzy: https://www.khanacademy.org/math/linear-algebra/vectors_and_spaces/null_column_space/v/null-space-2-calcul-the-null-space-of-a-matrix


1
Dobra odpowiedź, oznacza to, że odpowiedź książki jest błędna !! Okej
— Dr Hoshang

Uważam, że ta odpowiedź jest poprawna i jeśli twoja książka definiuje i zobacz, co otrzymujesz dzięki tym definicjom. S.W.S.b
— dksahuji,

2
-1.33 jest równe -4/3, ale drugi element jest inny. Może wektor w raporcie książki? Nie ma racji?
— Wielkie

2
wypełnij rozwiązanie 2, aby osiągnąć wartość W, aby je zdobyć
— nini

1
@ Dr.Hoshang: Rozwiązanie w twojej książce jest złe. Nie mam pojęcia dlaczego.
— ameba mówi Przywróć Monikę
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.