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
oraz rozkład instancji w każdej klasie podany przez
Jak obliczyć wagi kryterium Fishera?
Aktualizacja 2: Obliczona waga dostarczona przez moją książkę to: .
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 W
Odpowiedzi:
Zgodnie z dokumentem, do którego linkujesz (Mika i in., 1999) , musimy znaleźć które maksymalizuje tak zwany uogólniony iloraz Rayleigha ,w
gdzie dla średnich i kowariancji C 1 , C 2 ,m1, m2) do1, C.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.eig
i 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).źródło
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:
gdzie i , tutaj są macierzą kowariancji, a są odpowiednio klasami 1 i 2.S.b= ( m1- m2)) ( m1- m2))T. S.W.= S1+ S2) S.1, S2) m1, m2)
Rozwiązaniem tego uogólnionego ilorazu Raleigha jest uogólniony sonda wartości własnej.
Powyższy preparat ma postać zamkniętą. jest macierzą rangi 1 na podstawie więc którą można normować, aby uzyskać odpowiedź.S.b m1- m2) w ∝ S.W.- 1( m 1 - m 2 )
Właśnie obliczyłem i otrzymałem [0,5547; 0,8321].w
Patrz: Klasyfikacja wzorów według Dudy, Hart, Stork
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ń.ree t e r m i n a n t ( Sb- λ S.W.) S.bw = λ S.W.w λ1, λ2), . . . , λn, λ = λja, I ∈ { 1 , 2 , . . , n } S.bwja= λjaS.W.wja { wja}ni = 1
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( Sb- λ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
źródło