> Statistiques > Apprentissage > Linear discriminant analysis
Linear discriminant analysis
Le principe est de modéliser la distribution de chaque variable prédictive par une loi de probabilité gaussienne qui dépend de la classe à prédire et de calculer les paramètres de ces lois de probabilité. Puis, lors de la prédiction, on applique la loi de Bayes pour en déduire la probabilité de chaque classe connaissant les valeurs des variables prédictives. Dans la LDA, les frontières entre classes prédites sont en fait linéaires (d'où le nom).
On peut utiliser la fonction lda du package MASS :
- model <- lda(y ~ x1 + x2, fr) : calcule le modèle en utilisant y comme variable à prédire et x1 et x2 comme variables prédictives issues du data frame fr. L'objet retourné est de la classe lda
- predict.lda : une fois que le modèle est calculé, on peut s'en servir pour faire les prédictions : pred <- predict(model, newdata = frTest) : renvoie une liste avec notamment les champs :
- pred$class : la classe prédite.
- pred$posterior : une matrice avec une colonne par classe indiquant la probabilité de chaque classe pour chaque individu prédit.
Quadratic discriminant analysis : c'est une généralisation de la LDA, sauf qu'on ne fait pas l'hypothèse que la matrice de covariance est indépendante de la classe. Les frontières entre classes prédites ne sont alors plus nécessairement linéaires
On peut utiliser la fonction qda du package MASS :
- model <- qda(y ~ x1 + x2, fr) : calcule le modèle en utilisant y comme variable à prédire et x1 et x2 comme variables prédictives issues du data frame fr. L'objet retourné est de la classe qda
- predict.qda : une fois que le modèle est calculé, on peut s'en servir pour faire les prédictions : pred <- predict(model, newdata = frTest) : renvoie une liste avec les champs :
- pred$class : la classe prédite.
- pred$posterior : une matrice avec une colonne par classe indiquant la probabilité de chaque classe pour chaque individu prédit.
Copyright Aymeric Duclert
programmer en R, tutoriel R, graphes en R