SOLUTION1:
A seguito di Duda et al. (Pattern CLassification) che ha una soluzione alternativa a @lucas e in questo caso offre una soluzione molto semplice da calcolare a mano. (Spero che questa soluzione alternativa aiuti !! :))
In due classi LDA l'obiettivo è:
wTSBwwTSWw che significa solo che aumenta la varianza tra le classi e diminuisce la varianza all'interno della classe.
dove e , qui sono matrice di covarianza e sono rispettivamente mezzi di classe 1 e 2.SB=(m1−m2)(m1−m2)TSW=S1+S2S1,S2m1,m2
La soluzione di questo quoziente generalizzato di raleigh è un probem generalizzato di valore di autigene.
SBw=λSWw→SW−1SBw=λw
La formulazione sopra ha una soluzione in forma chiusa. è una matrice di rango 1 con base quindi che può essere normlizd per ottenere la risposta.SBm1−m2w∝SW−1(m1−m2)
Ho appena calcolato e ottenuto [0,5547; 0,8321].w
SW−1(m1−m2)=(S1+S2)−1(m1−m2)=([2001]+[1001])−1([00]−[44])=([1/3001/2])([00]−[44])=[−1.3333−2.0000]∝[0.55470.8321]
Rif: Classificazione dei modelli di Duda, Hart, Cicogna
SOLUTION2:
In alternativa, può essere risolto trovando il vettore eigen per il problema del valore di eigen generalizzato.
SBw=λSWw
Un polinomio in lambda può essere formato dal e le soluzioni a quel polinomio saranno il valore per . Ora supponiamo che tu abbia un insieme di valori autigen come radici del polinomio. Ora sostituisci e ottieni il vettore eigen corrispondente come soluzione al sistema lineare di equazioni . In questo modo per ciascuno di essi è possibile ottenere un insieme di vettori ed è un insieme di vettori eigen come soluzioni.determinant(SB−λSW)SBw=λSWwλ1,λ2,...,λn,λ=λi,i∈{1,2,..,n}SBwi=λiSWwi{wi}ni=1
determinant(SB−λSW)=[16−3λ161616−2λ]=6λ2−80λ , quindi i valori eigen sono radici al polinomio .6λ2−80λ
Quindi 0 e 40/3 sono le due soluzioni. Per LDA, la soluzione è il vettore autigen corrispondente al valore autigen maggiore.λ=
Soluzione al sistema di equazione e(SB−λiSW)wi=0λi=40/3
che risulta essere[16−3λ161616−2λ]wi∝[−724848−32]wi=0
La soluzione al sistema di equazioni sopra riportato è che è la stessa della soluzione precedente.[−0.5547−0.8321]∝[0.55470.8321]
In alternativa, possiamo dire che risiede nello spazio nullo di .[ - 72 48 48 - 32 ][0.55470.8321][−724848−32]
Per LDA a due classi, la soluzione è il vettore eigen con il valore eigen più alto. In generale, per la classe C LDA, i primi vettori autigenici C - 1 ai più alti valori autigenici C - 1 costituiscono la soluzione.
Questo video spiega come calcolare i vettori eigen per un semplice problema di valore eigen. ( https://www.khanacademy.org/math/linear-algebra/alternate_bases/eigen_everything/v/linear-algebra-finding-eigenvectors-and-eigenspaces-example )
Di seguito è riportato un esempio.
http://www.sosmath.com/matrix/eigen2/eigen2.html
LDA multi-classe:
http://en.wikipedia.org/wiki/Linear_discriminant_analysis#Multiclass_LDA
Calcolo dello spazio nullo di una matrice:
https://www.khanacademy.org/math/linear-algebra/vectors_and_spaces/null_column_space/v/null-space-2-calculating-the-null-space-of-a-matrix