Didacticiel — Reduction de dimension

ACP (Analyse en Composantes Principales)

Quand vous avez 10, 20, 50 capteurs qui mesurent le meme process, l'ACP extrait les directions qui portent l'information. Vous passez d'un nuage haute dimension a 2 ou 3 axes interpretables, sans perdre l'essentiel.

Decomposition en valeurs propres — chaque composante principale est un vecteur propre de la matrice de covariance. La valeur propre associee = variance portee par cet axe. Les axes sont tries par variance decroissante.

Pourquoi l'ACP ? Les 3 problemes qu'elle resout

1. Multicollinearite

Temperature, pression, debit, vibration : vos capteurs bougent souvent ensemble. Les regressions deviennent instables (coefficients qui sautent selon les donnees). L'ACP extrait des axes decorreles par construction — on peut regresser dessus sans interference.

Test prealable : VIF superieur a 10 = multicollinearite severe.

2. Visualisation haute dimension

Un oeil humain ne voit pas en 15 dimensions. Projeter sur les 2 premieres composantes (PC1 vs PC2) donne une carte 2D ou chaque point est un echantillon, chaque direction un phenomene physique.

Exemple : machine A et machine B se separent spontanement sur PC1 = signature thermique differente.

3. Compression / denoising

Garder les k premieres composantes qui portent 90-95% de la variance = compression sans perte significative. Les composantes ignorees portent souvent le bruit de mesure.

Usage industriel : alimenter un modele ML avec 3 composantes plutot que 15 variables brutes -> moins d'overfit, plus robuste.

Hypotheses et preparation des donnees (a ne PAS negliger)

1. Centrage (obligatoire) — On soustrait la moyenne de chaque variable. Sans centrage, la premiere composante pointe vers le centre du nuage, pas vers la direction de variance maximale.

2. Reduction / standardisation (fortement recommande) — On divise par l'ecart-type. Sans reduction, une variable en kelvin (ecart-type ~50) ecrase une variable en millimetres (ecart-type ~0.1). L'ACP n'est plus informative — c'est juste un ranking d'unites.

3. Linearite des relations — L'ACP capture uniquement des relations lineaires. Si vos variables sont liees par une forme non-lineaire (exponentielle, loi de puissance), envisager une transformation (log, racine) ou une Kernel PCA.

4. Outliers — Un point tres eloigne peut aspirer tout l'axe PC1. Nettoyer ou utiliser une ACP robuste (RobustPCA).

5. Taille d'echantillon — Regle de pouce : n > 5p (5 echantillons par variable) pour estimer correctement la covariance.

Comment interpreter les resultats ?

Scree plot

Graphique des valeurs propres (ou variance expliquee) par composante. Cherchez le coude — la ou la pente s'aplatit brutalement. Les composantes avant le coude portent le signal, apres = bruit.

Regle Kaiser : garder les composantes avec valeur propre > 1 (sur donnees standardisees).

Variance expliquee cumulee

Somme cumulee des variances. Cible industrielle classique : garder suffisamment de composantes pour atteindre 80-90% de variance expliquee. Moins = perte d'info. Plus = trop de composantes a interpreter.

Biplot (PC1 vs PC2)

Deux couches superposees :

  • Points = echantillons (lignes du dataset).
  • Fleches = variables (colonnes). Une fleche longue vers PC1 = la variable est fortement correlee a l'axe PC1.

Deux fleches pointant dans la meme direction = variables correlees. Fleches opposees = anti-correlees. Fleches perpendiculaires = decorrelees.

Loadings (poids des variables)

Matrice donnant la contribution de chaque variable a chaque composante. Une loading de 0.8 sur PC1 et 0.1 sur PC2 = variable dominee par PC1.

Regle pratique : loading |> 0.3| = contribution notable. Loading |> 0.5| = dominante.

Chargement du moteur de calcul — Pyodide + numpy + scikit-learn + matplotlib (~35 Mo).

Premier chargement : 5-10 secondes. Ensuite mis en cache par votre navigateur.

Exercices guides

Huit exercices de difficulte croissante pour ancrer les concepts. Chargez le dataset indique, appliquez la config, deroulez les questions. Les solutions sont a la fin.

01

Combien de composantes pour 90% de variance ?

Setup : Dataset Iris, centrage+reduction.

Question : Faites glisser le slider Composantes a conserver et notez la variance cumulee. Combien de composantes pour depasser 90% de variance ? 95% ?

Solution

Sur Iris standardise : PC1 = ~73%, PC1+PC2 = ~96%. Donc 2 composantes suffisent pour 90% et 95%. C'est exceptionnel — les 4 variables sont tres correlees.

02

Quelle variable domine PC1 ?

Setup : Dataset industriel par defaut, centrage+reduction.

Question : Dans le tableau des loadings, quelle variable a la plus forte valeur absolue sur PC1 ? Qu'est-ce que cela signifie physiquement ?

Solution

Sur le dataset fourni, PC1 est domine par la temperature et la consommation (loadings > 0.4). Physiquement : PC1 capture le regime thermique de la machine — chauffe = consomme plus.

03

Piege du scaling

Question : Repetez le calcul en choisissant Aucun pretraitement. Regardez la variance expliquee par PC1. Comparez avec le resultat standardise. Que se passe-t-il ?

Solution

Sans scaling, PC1 absorbe >99% de la variance — c'est la variable avec la plus grande unite (ex : vitesse en rpm, ecart-type 100+) qui ecrase tout. Le resultat n'est pas interpretable. Leçon : toujours standardiser si les unites sont heterogenes.

04

Lire un biplot

Question : Sur le biplot Iris, deux fleches pointent dans la meme direction. Lesquelles ? Verifiez dans les loadings qu'elles sont correlees.

Solution

Petal Length et Petal Width pointent dans la meme direction sur PC1 — leurs loadings sont tres proches. C'est logique : une fleur avec de grands petales en longueur a aussi des petales larges.

05

Detection outlier par ACP

Setup : Dataset industriel, PC = 2.

Question : Sur le biplot, reperez les points isoles loin du nuage principal. Combien y en a-t-il ? Que pourraient-ils representer en production ?

Solution

Le dataset fourni inclut deliberement 3-5 cycles anormaux (derive capteur, incident). Ils se separent sur le biplot. En production, l'ACP sert precisement a detecter ces points hors du mode normal sans definir a priori un seuil par variable.

06

Interpretation de PC2

Setup : Dataset industriel, 3 composantes.

Question : Regardez les loadings de PC2. Quelles variables dominent ? Quel phenomene physique cela pourrait-il representer ?

Solution

PC2 est souvent dominee par vibration et pression hydraulique — c'est la signature mecanique, orthogonale a la signature thermique de PC1. Interpretation : PC1 = regime thermique, PC2 = regime mecanique.

07

Seuil de Kaiser

Question : Sur donnees standardisees, combien de composantes ont une valeur propre (= variance) superieure a 1 ? Ce critere (regle de Kaiser) suggere combien de composantes garder ?

Solution

La valeur propre moyenne est 1 (somme = p variables = n*moyenne). Kaiser dit : garder les composantes qui portent plus que la moyenne. Sur dataset industriel, typiquement 3-4 composantes passent ce seuil. Critere simple mais parfois trop genereux vs le coude du scree plot.

08

Cas limite : variables independantes

Question : Si toutes les variables etaient independantes (correlation nulle), que donnerait l'ACP ? Essayez de le verifier mentalement avant de regarder la solution.

Solution

Sur p variables standardisees totalement decorrelees, chaque composante expliquerait exactement 1/p de la variance. Scree plot plat. Biplot : fleches regulierement espacees. Verdict : l'ACP n'apporte rien — il n'y a rien a compresser. Leçon : l'ACP est utile UNIQUEMENT s'il y a de la correlation entre variables.