Comment calculer les poids des critères Fisher?


12

J'étudie la reconnaissance des formes et l'apprentissage automatique, et je suis tombé sur la question suivante.

Considérons un problème de classification à deux classes avec une probabilité de classe antérieure égale

P(D1)=P(D2)=12

et la distribution des instances dans chaque classe donnée par

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

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

Comment calculer les poids des critères Fisher?

Mise à jour 2: Le poids calculé fourni par mon livre est: W=[−43−29] .

Mise à jour 3: Comme laissé entendre par @xeon, je comprends que je devrais déterminer la ligne de projection pour le discriminant de Fisher.

Mise à jour 4: Soit W la direction de la ligne de projection, alors la méthode discriminante linéaire de Fisher trouve que le meilleur W est celui pour lequel la fonction de critère est maximisée. Le défi restant est de savoir comment obtenir numériquement le vecteur W ?


Votre première distribution n'est pas définie. En particulier, la deuxième variable de la paire a une distribution dégénérée avec une variance nulle, mais a une covariance positive avec la première variable, ce qui est impossible.
— owensmartin

@owensmartin avez-vous une idée, comment ces valeurs ont-elles été calculées?
— Dr.Hoshang

Quelle est la définition du poids du critère de Fisher?
— Vladislavs Dovgalecs

Je veux dire que le discriminant linéaire de Fisher est donné par le vecteur w qui maximise ... il est noté sur tous les matériaux comme luthuli.cs.uiuc.edu/~daf/courses/Learning/Kernelpapers/… à la p. 2. est-ce okey @xeon?
— Dr.Hoshang

Astuce: Quelle sera la frontière entre les deux classes? Linéaire, polynomial, autre chose?
— Vladislavs Dovgalecs

Réponses:


11

À la suite de l'article auquel vous avez lié (Mika et al., 1999) , nous devons trouver le qui maximise le soi-disant quotient de Rayleigh généralisé ,w

w⊤SBww⊤SWw,

où pour les moyens et les covariances ,C 1 , C 2m1,m2C1,C2

SB=(m1−m2)(m1−m2)⊤,SW=C1+C2.

La solution peut être trouvée en résolvant le problème généralisé des valeurs propres par le premier calcul les valeurs propres en résolvant puis en résolvant pour le vecteur propre . Dans votre cas, Le déterminant de cette matrice 2x2 peut être calculé à la main.λdet( S B -λ S W )=0wSB-λSW=( 16 - 3 λ 16

SBw=λSWw,
λ
det(SB−λSW)=0
w
SB−λSW=(16−3λ161616−2λ).

Le vecteur propre avec la plus grande valeur propre maximise le quotient de Rayleigh. Au lieu de faire les calculs à la main, j'ai résolu le problème des valeurs propres généralisées en Python en utilisant scipy.linalg.eiget j'ai obtenu ce qui est différent de la solution que vous avez trouvée dans votre livre. Ci-dessous, j'ai tracé l'hyperplan optimal du vecteur de poids que j'ai trouvé (noir) et l'hyerplan du vecteur de poids trouvé dans votre livre (rouge).

w1≈0.5547,w2≈0.8321,

entrez la description de l'image ici


1
Cet exemple est très intéressant. Les deux lignes séparent les deux classes mais l'une d'elles est "meilleure" du point de vue de la théorie de l'apprentissage.
— Vladislavs Dovgalecs

2
Le critère de Fisher est détaillé à la section 5-2-3 sur books.google.com/…
— nini le

1
@Lucas peut-être que le résultat en question est proche des commentaires de xeon, "Peut-être devrions-nous rapporter le vecteur unitaire w puisque l'hyperplan est défini par la direction, pas par la magnitude." N'est-ce pas?
— nini

1
Oh !!! question difficile, je recommande à tous de voir la page 2 sur dml.ir/wp-content/uploads/2012/04/SPR-S12-M-Sol.pdf
— user153695

1
@Lucas Merci. veuillez ajouter une autre image pour W = [- 2/3 -2/3] et W = [- 4/3 -2/3] et W = [- 2 -3] avec trois couleurs différentes pour voir la frontière? Merci. Je vous offre une prime pour une belle réponse.
— nini

7

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}i=1n

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


1
Belle réponse, tu veux dire que la réponse du livre est fausse !! Bien?
— Dr.Hoshang

Je crois que cette réponse est correcte et si votre livre définit et différemment, voyez ce que vous obtenez avec ces définitions. S BSWSB
— dksahuji

2
-1,33 est égal à -4/3 mais le deuxième élément est différent. Peut-être livre rapport unité vecteur w? N'est-ce pas? Merci beaucoup
— Dr.Hoshang

2
veuillez compléter la solution 2 pour atteindre la valeur de W à la prime
— nini

1
@ Dr.Hoshang: La solution dans votre livre est fausse. Je ne sais pas pourquoi.
— amibe dit Réintégrer Monica le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.