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=[4329] .

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 ?

Dr. Hoshang
la source
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

wSBwwSWw,

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

SB=(m1m2)(m1m2),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=(163λ1616162λ).

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).

w10.5547,w20.8321,

entrez la description de l'image ici

Lucas
la source
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=(m1m2)(m1m2)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=λSWwSW1SBw=λ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.SBm1m2wSW1(m1m2)

Je viens de calculer le et j'ai obtenu [0,5547; 0,8321].w

SW1(m1m2)=(S1+S2)1(m1m2)=([2001]+[1001])1([00][44])=([1/3001/2])([00][44])=[1.33332.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)=[163λ1616162λ]=6λ280λ , donc les valeurs propres sont racines au polynôme .6λ280λ

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[163λ1616162λ]wi[72484832]wi=0

La solution au système d'équation ci-dessus est qui est identique à la solution précédente.[0.55470.8321][0.55470.8321]

Alternativement, nous pouvons dire que se situe dans l'espace nul de .[ - 72 48 48 - 32 ][0.55470.8321][72484832]

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

dksahuji
la source
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