Accueil / Factory / Algos ML / Analyse discriminante quadratique — factory / algos ML / apprentissage supervisé

ANALYSE DISCRIMINANTE QUADRATIQUE.

La LDA suppose que tous les groupes ont la même dispersion. L'analyse discriminante quadratique laisse chaque groupe garder la sienne : un nuage serré, un autre étalé. La frontière devient courbe. Utile quand un état anormal se distingue autant par sa régularité que par son niveau moyen.

ClassificationFrontière courbeStatistique classiqueCapteursNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceMeilleure que la LDA quand les formes diffèrent, sinon équivalente
InterprétabilitéMoyennes et dispersions par classe lisibles, frontière moins
VitesseFormule fermée, instantanée sur quelques variables
Facilité de réglagePeu de paramètres, mais une régularisation parfois nécessaire
Tolérance aux données brutesSensible aux extrêmes, gourmande en données par classe
EN 30 SECONDES

Deux troupeaux : l'un groupé serré autour du berger, l'autre dispersé dans le pré. La limite entre les deux n'est pas une clôture droite mais une ligne qui entoure le troupeau groupé.

1. On décrit chaque classe séparément

Pour chaque classe, on calcule sa moyenne et sa propre matrice de dispersion : étalement de chaque variable et liens entre elles.

2. On calcule une vraisemblance par classe

Pour un nouveau point, on mesure à quel point il est typique de chaque classe, en tenant compte de sa forme. Un point peut être proche d'une moyenne mais atypique pour un nuage très serré.

3. On compare et on décide

On pondère par la fréquence de chaque classe et on retient la plus probable. La frontière qui en résulte est une courbe (ellipse, parabole).

LE CAS MÉTIER

maintenance prédictive · industrie / énergie / transport
EN ENTRÉE

Des mesures horaires de capteurs

Température et vibration d'une machine, heure par heure, avec l'étiquette « dans les 72 heures avant une panne » sur l'historique. En pré-panne, la vibration est plus haute et bien plus régulière qu'en marche normale.

EN SORTIE

Une alerte de pré-panne

Chaque heure reçoit une probabilité d'être en phase de pré-panne. Sur le jeu d'exemple, au seuil de 50 %, la QDA repère 18 heures de pré-panne sur 22, contre 15 pour la LDA, pour un nombre de fausses alertes comparable.

CE QU'ON MESURE

Rappel et fausses alertes, pas l'exactitude

Les pré-pannes ne représentent que 4 % des heures : dire « tout va bien » donne 96 % d'exactitude. On suit la part des pré-pannes détectées et le nombre de fausses alertes par semaine. En production, on valide sur une période postérieure à l'entraînement.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Classes dont la dispersion diffère nettement : état normal étalé, état anormal concentré
  • Peu de variables et suffisamment d'exemples dans chaque classe
  • Besoin d'un modèle statistique simple, rapide et probabiliste
  • Contrôle qualité ou maintenance sur quelques mesures physiques

NON

  • Beaucoup de variables et peu d'exemples par classe : les dispersions sont mal estimées, préférer la LDA ou régulariser
  • Classes de même forme : la LDA fait aussi bien avec moins de paramètres
  • Nuages non gaussiens, en plusieurs paquets : un modèle à base d'arbres ou une SVM à noyau s'adapte mieux
  • Séries temporelles avec dérive : ajouter des variables de tendance ou passer à un modèle dédié
LES 3 CHOIX QUI COMPTENT

Noms donnés pour R (MASS) et Python (scikit-learn).

prior / priors

Probabilités a priori des classes. Avec une classe rare, les augmenter fait lever plus d'alertes : c'est le levier pour arbitrer entre détection et fausses alertes.

reg_param

Régularisation qui rapproche chaque dispersion d'une forme plus simple. Indispensable quand une classe a peu d'exemples ou des variables très corrélées. MASS::qda n'en propose pas ; klaR::rda le permet.

Seuil de décision

La probabilité de 50 % n'a rien d'obligatoire. On le fixe selon le coût d'un arrêt imprévu et celui d'une intervention inutile.

LE CODE MINIMAL

jeu d'exemple : capteurs_machine.csv ↓
# Détection de pré-panne : analyse discriminante quadratique en R
library(MASS)

capteurs <- read.csv("capteurs_machine.csv")
capteurs$panne_72h <- factor(capteurs$panne_72h)   # 1 = dans les 72 h avant la panne

set.seed(42)
idx <- sample(nrow(capteurs), round(0.7 * nrow(capteurs)))
train <- capteurs[idx, ]
test <- capteurs[-idx, ]

# Chaque classe a sa propre moyenne ET sa propre dispersion
print(aggregate(cbind(temperature, vibration) ~ panne_72h, data = train, FUN = sd))

qda_m <- qda(panne_72h ~ temperature + vibration, data = train)
lda_m <- lda(panne_72h ~ temperature + vibration, data = train)

# Comparaison au seuil de 50 % sur les heures jamais vues
print(table(QDA = predict(qda_m, test)$class, reel = test$panne_72h))
print(table(LDA = predict(lda_m, test)$class, reel = test$panne_72h))

QUESTIONS FRÉQUENTES

Quelle différence entre LDA et QDA ?

La LDA suppose que toutes les classes partagent la même dispersion : la frontière est droite. La QDA estime une dispersion par classe : la frontière devient courbe. La QDA est plus souple mais demande plus de données, car elle estime beaucoup plus de paramètres.

Quand utiliser une analyse discriminante quadratique ?

Quand les classes diffèrent autant par leur forme que par leur position : un état stable et resserré face à un état variable, par exemple. Il faut aussi assez d'exemples dans chaque classe, au moins plusieurs fois le nombre de variables.

Pourquoi ma QDA plante-t-elle avec une erreur de rang ?

Une classe a trop peu d'exemples par rapport au nombre de variables, ou certaines variables sont constantes ou redondantes dans une classe. Sa dispersion ne peut pas être inversée. Il faut retirer des variables, régulariser (reg_param) ou revenir à la LDA.

LES ALGOS VOISINS

à comparer avant de choisir
la version droite

Analyse discriminante linéaire

Une dispersion commune à toutes les classes : moins de paramètres, frontière droite.

Voir la fiche →
la version simplifiée

Naive Bayes

Le Naive Bayes gaussien est une QDA qui ignore les liens entre variables.

Voir la fiche →
sans étiquettes

Isolation Forest

Repère les heures anormales sans historique de pannes étiqueté.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →