Ich studiere Mustererkennung und maschinelles Lernen und bin auf die folgende Frage gestoßen.
Betrachten Sie ein Zweiklassen-Klassifizierungsproblem mit gleicher Wahrscheinlichkeit für die vorherige Klasse
und die Verteilung der Instanzen in den einzelnen Klassen von
Wie berechnet man Fisher-Kriterium-Gewichte?
Update 2: Das berechnete Gewicht in meinem Buch ist: .
Update 3: Wie von @xeon angedeutet, sollte ich die Projektionslinie für die Fisher-Diskriminante bestimmen.
Update 4: Sei die Richtung der Projektionslinie, dann stellt die lineare Diskriminanzmethode von Fisher fest, dass das beste W dasjenige ist, für das die Kriteriumsfunktion maximiert ist. Die verbleibende Herausforderung besteht darin, wie wir den numerischen W- Vektor erhalten können.
Antworten:
Nach dem Papier , das Sie verknüpfen (Mika et al., 1999) , müssen wir finden die der maximiert den so genannten generali Rayleighquotienten ,w
wo für bedeutet und covariances C 1 , C 2 ,m1,m2 C1,C2
Die Lösung kann durch Lösen des verallgemeinerten Eigenwertproblems indem zuerst die Eigenwerte λ durch Lösen von det ( S B - λ S W ) = 0 berechnet und dann nach dem Eigenvektor w gelöst werden . In Ihrem Fall S B - λ S W = ( 16 - 3 λ 16 16 16 - 2 λ ) .
Der Eigenvektor mit dem größten Eigenwert maximiert den Rayleigh-Quotienten. Anstatt die Berechnungen von Hand durchzuführen , löste ich das verallgemeinerte Eigenwertproblem in Python mit
scipy.linalg.eig
und erhielt was sich von der Lösung unterscheidet, die Sie in Ihrem Buch gefunden haben. Unten habe ich die optimale Hyperebene des gefundenen Gewichtsvektors (schwarz) und die Hyerebene des in Ihrem Buch gefundenen Gewichtsvektors (rot) aufgetragen.quelle
Nach Duda et al. (Musterklassifizierung), die eine alternative Lösung zu @lucas bietet und in diesem Fall eine sehr einfach zu berechnende Lösung von Hand darstellt. (Hoffe, diese alternative Lösung hilft !! :))
In zwei Klassen LDA ist das Ziel:
Die Lösung dieses verallgemeinerten Raleigh-Quotienten ist ein verallgemeinertes Eigenwertproblem.
Ref: Pattern Classification von Duda, Hart, Stork
Soλ= 0 and 40/3 are the two solutions.
For LDA, eigen vector corresponding to highest eigen value is the solution.
Solution to system of equation(SB−λiSW)wi=0 and λi=40/3
which turns out to be[16−3λ161616−2λ]wi∝[−724848−32]wi=0
Solution to the above system of equation is[−0.5547−0.8321]∝[0.55470.8321] which is same as previous solution.
Alternatively, we can say that[0.55470.8321] lies in the null space of [−724848−32] .
For two class LDA, eigen vector with highest eigen value is the solution. In general, for C class LDA, the first C - 1 eigen vectors to highest C - 1 eigen values constitute the solution.
This video explains how to compute eigen vectors for simple eigen value problem. ( https://www.khanacademy.org/math/linear-algebra/alternate_bases/eigen_everything/v/linear-algebra-finding-eigenvectors-and-eigenspaces-example )
Following is an example. http://www.sosmath.com/matrix/eigen2/eigen2.html
Multi-class LDA: http://en.wikipedia.org/wiki/Linear_discriminant_analysis#Multiclass_LDA
Calculating Null Space of a matrix: https://www.khanacademy.org/math/linear-algebra/vectors_and_spaces/null_column_space/v/null-space-2-calculating-the-null-space-of-a-matrix
quelle