SOLUTION1:
Après Duda et al. (Pattern CLassification) qui a une solution alternative à @lucas et dans ce cas donne une solution très facile à calculer à la main. (J'espère que cette solution alternative vous aidera !! :))
Dans deux LDA de classe, l'objectif est:
wTSBwwTSWw ce qui signifie simplement que l'augmentation de la variance entre classes et la diminution de la variance intra classe.
où et , ici sont une matrice de covariance et sont des moyennes de classe 1 et 2 respectivement.SB=(m1−m2)(m1−m2)TSW=S1+S2S1,S2m1,m2
La solution de ce quotient de raleigh généralisé est un probem de valeur propre généralisée.
SBw=λSWw→SW−1SBw=λw
La formulation ci-dessus a une solution sous forme fermée. est une matrice de rang 1 avec une base donc qui peut être normlizd pour obtenir la réponse.SBm1−m2w∝SW−1(m1−m2)
Je viens de calculer le et j'ai obtenu [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]
Réf: Classification des motifs par Duda, Hart, Stork
SOLUTION2:
Alternativement, il peut être résolu en trouvant un vecteur propre au problème de valeur propre généralisé.
SBw=λSWw
Un polynôme dans lambda peut être formé par un et les solutions à ce polynôme seront la valeur propre pour . Supposons maintenant que vous ayez un ensemble de valeurs propres tant que racines du polynôme. Remplacez maintenant et obtenez le vecteur propre correspondant comme solution au système linéaire d'équations . En faisant cela pour chaque i, vous pouvez obtenir un ensemble de vecteurs et c'est un ensemble de vecteurs propres comme solutions.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λ , donc les valeurs propres sont racines au polynôme .6λ2−80λ
Donc 0 et 40/3 sont les deux solutions. Pour LDA, le vecteur propre correspondant à la valeur propre la plus élevée est la solution.λ=
Solution au système d'équation et(SB−λiSW)wi=0λi=40/3
qui se révèle être[16−3λ161616−2λ]wi∝[−724848−32]wi=0
La solution au système d'équation ci-dessus est qui est identique à la solution précédente.[−0.5547−0.8321]∝[0.55470.8321]
Alternativement, nous pouvons dire que se situe dans l'espace nul de .[ - 72 48 48 - 32 ][0.55470.8321][−724848−32]
Pour une LDA à deux classes, le vecteur propre avec la valeur propre la plus élevée est la solution. En général, pour la classe C LDA, les premiers vecteurs propres C - 1 aux valeurs propres C - 1 les plus élevées constituent la solution.
Cette vidéo explique comment calculer des vecteurs propres pour un problème de valeur propre simple. ( https://www.khanacademy.org/math/linear-algebra/alternate_bases/eigen_everything/v/linear-algebra-finding-eigenvectors-and-eigenspaces-example )
Voici un exemple.
http://www.sosmath.com/matrix/eigen2/eigen2.html
LDA multi-classe:
http://en.wikipedia.org/wiki/Linear_discriminant_analysis#Multiclass_LDA
Calcul de l'espace nul d'une 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