J'ai du mal avec les points de projection dans l'analyse discriminante linéaire (LDA). De nombreux livres sur les méthodes statistiques multivariées illustrent l'idée de la LDA avec la figure ci-dessous.
La description du problème est la suivante. Nous devons d'abord dessiner une frontière de décision, ajouter une ligne perpendiculaire et ensuite tracer des projections de points de données dessus. Je me demande comment ajouter des points de projection à la ligne perpendiculaire.
Des suggestions / pointeurs?
Réponses:
L'axe discriminant (sur lequel les points sont projetés sur votre figure 1) est donné par le premier vecteur propre de . Dans le cas de seulement deux classes, ce vecteur propre est proportionnel à , où sont des centroïdes de classe. Normalisez ce vecteur (ou le vecteur propre obtenu) pour obtenir le vecteur d'axe unitaire . Cela suffit pour dessiner l'axe.W−1B W−1(m1−m2) mi v
Pour projeter les points (centrés) sur cet axe, il vous suffit de calculer . Ici est un projecteur linéaire sur .Xvv⊤ vv⊤ v
Voici l'exemple de données de votre dropbox et la projection LDA:
Voici le code MATLAB pour produire cette figure (comme demandé):
la source
Et "ma" solution. Un grand merci à @ttnphns et @amoeba!
la source
x
,intercept
etslope
?