Accueil / Factory / Algos ML / Analyse discriminante linéaire (LDA) — factory / algos ML / apprentissage supervisé

ANALYSE DISCRIMINANTE LINÉAIRE.

Une méthode statistique de 1936 qui cherche la combinaison de variables séparant le mieux des groupes connus. Elle sert à classer, comme une régression logistique, et à résumer ce qui distingue les groupes sur un ou deux axes. Le Z-score d'Altman, qui prédit les faillites d'entreprises, en est une application célèbre.

ClassificationRéduction de dimensionStatistique classiqueModèle interprétableNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceProche de la régression logistique sur la plupart des jeux
InterprétabilitéDes poids par variable et des axes que l'on peut tracer
VitesseUne formule fermée, calculée en une passe
Facilité de réglagePresque rien à régler en dehors des probabilités a priori
Tolérance aux données brutesSensible aux valeurs extrêmes, suppose des nuages gaussiens
EN 30 SECONDES

Photographier deux foules sous le meilleur angle : celui où elles se chevauchent le moins sur la photo.

1. On décrit chaque groupe

On calcule la moyenne de chaque variable dans chaque groupe, et une dispersion commune à tous les groupes.

2. On cherche le meilleur angle

L'axe discriminant maximise l'écart entre les moyennes des groupes par rapport à la dispersion à l'intérieur des groupes. Avec k groupes, on obtient au plus k - 1 axes.

3. On classe selon la position sur l'axe

Un nouveau client est projeté sur l'axe et affecté au groupe dont il est le plus proche, en tenant compte de la taille de chaque groupe.

LE CAS MÉTIER

churn · télécom / énergie / assurance
EN ENTRÉE

Une ligne par client

Ancienneté, appels au support, montant mensuel, type de contrat, incidents récents, et le statut connu : parti ou resté. La question du marketing : qu'est-ce qui distingue le profil des partants ?

EN SORTIE

Un axe qui résume le profil à risque

Sur le jeu d'exemple, avec des variables centrées réduites, le nombre d'appels au support pèse le plus sur l'axe, devant le contrat mensuel ; l'ancienneté tire dans l'autre sens. Sur cet axe, partants et fidèles se placent nettement à l'écart les uns des autres.

CE QU'ON MESURE

L'AUC, comme pour tout score

La probabilité de départ issue de la LDA se juge comme celle d'une régression logistique : l'AUC mesure si les partants sont bien classés au-dessus des fidèles (0,75 sur le jeu d'exemple, au niveau de la logistique).

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Décrire ce qui distingue des groupes connus, pour une étude ou un comité
  • Plusieurs classes à visualiser sur 2 axes : segments, gammes, types de sites
  • Petits échantillons, où une méthode stable est préférable
  • Réduire les variables avant un autre modèle, en gardant l'information utile au classement

NON

  • Groupes de dispersions très différentes : passer à l'analyse discriminante quadratique
  • Variables catégorielles nombreuses : une régression logistique est plus naturelle
  • Effets à seuil et interactions : un arbre ou une Random Forest les capte seul
  • Valeurs extrêmes nombreuses : elles déforment moyennes et dispersions
LES 3 CHOIX QUI COMPTENT

Peu de paramètres. Noms donnés pour R (MASS) et Python (scikit-learn).

prior / priors

Probabilités a priori des groupes. Par défaut, leurs fréquences dans les données. Les modifier revient à déplacer le seuil de décision.

Mise à l'échelle

Elle ne change pas le classement, mais elle rend les poids de l'axe comparables entre variables exprimées en mois, en euros ou en nombre d'appels.

shrinkage

Régularisation de la dispersion commune, utile quand il y a beaucoup de variables pour peu de lignes. En Python, solver="lsqr" avec shrinkage="auto".

LE CODE MINIMAL

jeu d'exemple : clients_churn.csv ↓
# Profil des clients partants : analyse discriminante linéaire en R
library(MASS)

clients <- read.csv("clients_churn.csv")
X <- model.matrix(~ anciennete + appels_support + montant + contrat + incidents_3m, data = clients)[, -1]

set.seed(42)
idx <- sample(nrow(clients), round(0.7 * nrow(clients)))
# Variables centrées réduites avec les paramètres de l'entraînement
X_train <- scale(X[idx, ])
X_test <- scale(X[-idx, ], center = attr(X_train, "scaled:center"), scale = attr(X_train, "scaled:scale"))

modele <- lda(x = X_train, grouping = factor(clients$churn[idx]))

# L'axe discriminant : la combinaison de variables qui sépare le mieux les deux groupes
print(round(modele$scaling[order(modele$scaling[, 1]), , drop = FALSE], 2))

# Position moyenne des fidèles (0) et des partants (1) sur cet axe
res <- predict(modele, X_test)
print(round(tapply(res$x[, 1], clients$churn[-idx], mean), 2))
print(table(prevu = res$class, reel = clients$churn[-idx]))

QUESTIONS FRÉQUENTES

Quelle différence entre LDA et ACP ?

L'ACP cherche les axes qui résument le mieux la variance des données, sans connaître les groupes. La LDA connaît les groupes et cherche les axes qui les séparent le mieux. L'ACP décrit, la LDA discrimine.

LDA ou régression logistique ?

Les deux produisent une frontière linéaire et donnent souvent des résultats proches. La LDA suppose des nuages gaussiens de même dispersion ; si c'est à peu près vrai, elle est plus stable sur de petits échantillons. Sinon, la régression logistique, qui fait moins d'hypothèses, est plus sûre.

LDA veut-il dire Latent Dirichlet Allocation ?

Pas ici. Le même sigle désigne aussi une méthode de détection de thèmes dans des textes, la Latent Dirichlet Allocation. Les deux n'ont rien en commun : l'analyse discriminante classe des individus, la Latent Dirichlet Allocation découvre des sujets.

LES ALGOS VOISINS

à comparer avant de choisir
la version courbe

Analyse discriminante quadratique

Chaque groupe garde sa propre dispersion : la frontière devient courbe.

Voir la fiche →
l'alternative la plus courante

Régression logistique

Même type de frontière, moins d'hypothèses sur la forme des données, odds ratios lisibles.

Voir la fiche →
la cousine non supervisée

Analyse en composantes principales

Cherche les axes qui résument le plus de variance, sans connaître les groupes.

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 →