Dans R
, j'utilise la lda
fonction de la bibliothèque MASS
pour faire la classification. Si je comprends bien LDA, l'entrée verra attribuer l'étiquette , ce qui maximisera p (y | x) , non?
Mais quand le modèle, dans lequel y = Direction, je ne comprends pas très bien la sortie de , lda
Edit: pour reproduire la sortie ci-dessous, lancez d'abord:
library(MASS)
library(ISLR)
train = subset(Smarket, Year < 2005)
lda.fit = lda(Direction ~ Lag1 + Lag2, data = train)
> lda.fit Call: lda(Direction ~ Lag1 + Lag2, data = train) Prior probabilities of groups: Down Up 0.491984 0.508016 Group means: Lag1 Lag2 Down 0.04279022 0.03389409 Up -0.03954635 -0.03132544 Coefficients of linear discriminants: LD1 Lag1 -0.6420190 Lag2 -0.5135293
Je comprends toutes les informations dans la sortie ci-dessus, mais une chose, qu'est-ce que c'est LD1
? Je le recherche sur le web, est-ce un score discriminant linéaire ? Qu'est-ce que c'est et pourquoi en ai-je besoin?
MISE À JOUR
J'ai lu plusieurs articles (comme celui- ci et celui-ci ) et recherche également sur le Web pour DA, et maintenant voici ce que je pense de DA ou LDA.
Il peut être utilisé pour faire une classification, et lorsque c'est le but, je peux utiliser l'approche Bayes, c'est-à-dire calculer le postérieur pour chaque classe , puis classer dans la classe avec la plus haute postérieure . Par cette approche, je n'ai pas du tout besoin de découvrir les discriminants, non?
Comme je l'ai lu dans les articles, DA ou au moins LDA vise principalement à la réduction de la dimensionnalité , pour les classes et l' espace de prédiction dim, je peux projeter le -dim dans un nouvel espace de fonctionnalités -dim , c'est-à-dire , peut être considéré comme le vecteur d' transformé à partir du origine , et chaque est le vecteur sur lequel est projeté.
Ai-je raison au sujet des déclarations ci-dessus? Si oui, j'ai les questions suivantes:
Qu'est-ce qu'un discriminant ? Chaque entrée du vecteur est-elle discriminante? Ou ?
Comment faire la classification en utilisant des discriminants?
la source
discriminant analysis
sur ce site.Réponses:
Si vous multipliez chaque valeur de- 0,6420190 × + - 0,5135293 ×
LDA1
(le premier discriminant linéaire) par les éléments correspondants des variables prédictives et que vous les additionnez ( ), vous obtenez un score pour chaque répondant. Ce score le long de l'a priori est utilisé pour calculer la probabilité postérieure d'appartenance à une classe (il existe un certain nombre de formules différentes pour cela). La classification est faite sur la base de la probabilité postérieure, les observations étant censées appartenir à la classe pour laquelle elles ont la probabilité la plus élevée.Lag1
Lag2
Le graphique ci-dessous illustre la relation entre le score, la probabilité postérieure et la classification de l'ensemble de données utilisé dans la question. Les modèles de base sont toujours valables pour les LDA à deux groupes: il existe une correspondance 1: 1 entre les scores et la probabilité postérieure, et les prédictions sont équivalentes lorsqu'elles sont faites à partir des probabilités postérieures ou des scores.
Réponses aux sous-questions et autres commentaires
Bien que LDA puisse être utilisé pour la réduction de dimension, ce n'est pas ce qui se passe dans l'exemple. Avec deux groupes, la raison pour laquelle un seul score est requis par observation est que c'est tout ce qui est nécessaire. En effet, la probabilité d'être dans un groupe est le complément de la probabilité d'être dans l'autre (c'est-à-dire qu'ils s'ajoutent à 1). Vous pouvez le voir dans le graphique: les scores inférieurs à -.4 sont classés comme étant dans le groupe Down et les scores plus élevés devraient être Up .
Parfois, le vecteur de scores est appelé a
discriminant function
. Parfois, les coefficients sont appelés ainsi. Je ne sais pas si l'un ou l'autre est correct. Je pense que MASSdiscriminant
fait référence aux coefficients.La
lda
fonction du package MASS produit des coefficients d'une manière différente de la plupart des autres logiciels LDA. L'approche alternative calcule un ensemble de coefficients pour chaque groupe et chaque ensemble de coefficients a une interception. Avec la fonction discriminante (scores) calculée à l'aide de ces coefficients, la classification est basée sur le score le plus élevé et il n'est pas nécessaire de calculer les probabilités postérieures pour prédire la classification. J'ai mis du code LDA dans GitHub qui est une modification de laMASS
fonction mais produit ces coefficients plus pratiques (le package est appeléDisplayr/flipMultivariates
, et si vous créez un objet en utilisantLDA
vous pouvez extraire les coefficients en utilisantobj$original$discriminant.functions
).J'ai posté le code R pour tous les concepts de cet article ici .
library(MASS) getAnywhere("predict.lda")
la source
I'm not clear on whether either [word use] is correct
"fonction discriminante" aka "discriminant" est une variable extraite - une variable, une dimension. Il est donc caractérisé à la fois par des coefficients (poids) pour l'apprécier à partir des variables d'entrée et par des scores, les valeurs. Exactement comme un PC dans PCA. Ainsi, "coefficients discriminants" et "scores discriminants" sont l'utilisation correcte.La théorie derrière cette fonction est "la méthode de Fisher pour la discrimination entre plusieurs populations". Je recommande le chapitre 11.6 dans l'analyse statistique multivariée appliquée (ISBN: 9780134995397) pour référence.
la source