#pca — Apprentissage non supervisé
Analyse en composantes principales : trouver les axes où les données varient le plus, projeter, compresser — et mesurer ce qu'on perd.
Ce que tu vas manipuler
- Bienvenue dans #pca. À l'écran, 200 points bleus forment un nuage allongé comme un cigare, penché dans l'espace. Trois flèches partent de son centre : rose, jaune, verte. Ce sont ses composantes principales : la direction dans laquelle le nuage varie le plus, puis un peu moins, puis presque plus. La longueur de chaque flèche suit l'écart-type des points dans cette direction (√λ). Question de départ : dans quelle direction ce cigare varie-t-il le plus ? L'ACP répond avec trois axes et trois nombres, sans aucune étiquette. Fais tourner la scène à la souris pour voir le nuage en relief.
- Chaque flèche porte une part de la variance totale du nuage : λ1 / (λ1 + λ2 + λ3) pour la première, et ainsi de suite. Affiche ces pourcentages près des pointes :
/variance. - Garde seulement les deux premières composantes :
/composantes 2. Un plan indigo apparaît : c'est le plan (PC1, PC2), celui qui contient le plus de variance possible parmi tous les plans. C'est là qu'on va « aplatir » le nuage. - Aplatis le nuage :
/projeter. Chaque point glisse vers son ombre sur le plan : de 3 coordonnées, il n'en garde plus que 2. - Où est passée l'information perdue ? Affiche-la :
/reconstruire. Des segments gris relient chaque point d'origine à sa reconstruction. - Éloigne le nuage de l'origine :
/decaler 2. Les flèches suivent le nuage sans changer de direction : l'ACP centrée ne dépend pas de l'endroit où se trouve le nuage. - Change la forme du nuage :
/etirer z 3. L'écart-type selon z passe de 0,35 à 3 : la direction la plus « fine » du cigare devient la plus longue. - Compression maximale :
/composantes 1. Le plan devient une droite (PC1) et chaque point n'a plus qu'une seule coordonnée. - À toi de jouer :
/tourner 90(le nuage pivote, les flèches suivent),/bruit 0.6(le bruit gonfle λ3 : la composante « inutile » ne l'est plus tout à fait),/graine 42(autre tirage, axes presque identiques),/decaler 3puis/centrer(l'erreur du non-centrage, en grand),/composantes 3(retour à trois dimensions : erreur nulle),/reinitpour repartir. Prochaine étape : #t-sne-umap, où la réduction de dimension devient non linéaire, et #embeddings-3d, où des vecteurs de plusieurs centaines de dimensions sont ramenés à trois pour qu'on puisse les regarder.
Commandes du canal
/composantes <1|2|3>— Nombre de composantes gardées : droite (1), plan (2) ou tout (3)./projeter— Fait glisser chaque point vers sa projection (ou le ramène)./reconstruire— Affiche ou masque les segments point ↔ projection (l'erreur)./variance— Affiche ou masque la variance expliquée près de chaque flèche./etirer <x|y|z> <facteur=0.2..4>— Change l'écart-type du nuage selon un axe (avant rotation)./tourner <angle=0..180>— Tourne le nuage autour de l'axe (1, 1, 0)./decaler <distance=0..3>— Éloigne le centre du nuage de l'origine (vers le haut)./centrer— Active ou désactive le centrage des données avant la covariance./bruit <0..1>— Écart-type du bruit isotrope ajouté à chaque coordonnée./graine <1..99>— Retire les 200 points avec une autre graine, mêmes paramètres./reinit— Revient au nuage initial : 3 composantes, centré, sans projection.
Glossaire
- Analyse en composantes principales (ACP)
- Méthode non supervisée qui cherche les directions orthogonales dans lesquelles les données varient le plus, puis les classe par variance décroissante. Elle sert à réduire la dimension, à compresser et à visualiser des données en gardant le maximum d'information.
- Composante principale
- Direction (vecteur unitaire) de l'espace des données le long de laquelle la variance est maximale, sous contrainte d'être orthogonale aux composantes précédentes. Dans la scène : les flèches rose (PC1), jaune (PC2) et verte (PC3), de longueur proportionnelle à √λ.
- Variance expliquée
- Part de la variance totale portée par une composante : λi / (λ1 + λ2 + λ3). Les parts cumulées disent combien d'information on garde avec k composantes — c'est ce qui sert à choisir k.
- Matrice de covariance
- Matrice carrée (3×3 ici) dont la case (i, j) mesure comment les coordonnées i et j varient ensemble autour de la moyenne ; sa diagonale contient les variances. L'ACP la diagonalise : ses axes propres sont les composantes principales.
- Valeur propre et vecteur propre
- Un vecteur propre v d'une matrice C vérifie C·v = λ·v : la matrice ne fait que l'étirer d'un facteur λ. Pour la covariance, les vecteurs propres sont les composantes et chaque valeur propre est la variance des données le long de cet axe. On les calcule ici par rotations de Jacobi ; en pratique on passe plutôt par la décomposition en valeurs singulières (SVD) de la matrice centrée, plus stable numériquement.
- Projection
- Remplacement d'un point par le point le plus proche d'un sous-espace (droite, plan) : on garde ses coordonnées le long des composantes retenues et on écrase les autres. Dans la scène,
/projeterfait glisser chaque point sur le plan ou la droite indigo. - Réduction de dimension
- Passer de d coordonnées à k < d par point tout en préservant au mieux la structure des données. L'ACP est la réduction linéaire de référence ; t-SNE et UMAP en sont des cousines non linéaires.
- Centrage des données
- Soustraire la moyenne à chaque point avant de calculer la covariance. Sans centrage, on décompose XᵀX / n et la première « composante » pointe vers la moyenne au lieu de décrire la forme du nuage : c'est l'erreur classique que montre
/centrer. - Erreur de reconstruction
- Distance quadratique moyenne entre chaque point et sa reconstruction à partir de k composantes. Pour l'ACP centrée, elle vaut exactement la somme des valeurs propres écartées (λ3 si k = 2). Les segments gris de
/reconstruirela montrent point par point. - Compression avec perte
- Réduire la taille d'une donnée en acceptant d'en perdre une partie, mesurable. Garder k composantes sur d, c'est stocker k nombres par point au lieu de d : l'ACP est une compression avec perte dont la perte est précisément l'erreur de reconstruction.
Autres canaux du thème Apprentissage non supervisé
- #k-means — Regrouper sans étiquettes : des centroïdes qui se déplacent, l'inertie qui baisse, le choix de k — et les formes où k-means échoue.
- #pca — Analyse en composantes principales : trouver les axes où les données varient le plus, projeter, compresser — et mesurer ce qu'on perd.
- #clustering-hierarchique — Fusionner les points deux à deux jusqu'à n'en faire qu'un : le dendrogramme, les critères de lien, et la hauteur de coupe qui décide du nombre de clusters.
- #dbscan — Regrouper par densité : epsilon, MinPts, points cœur, bordure et bruit — l'algorithme qui trouve des formes quelconques et ignore les intrus.
- #detection-anomalies — Repérer ce qui ne ressemble à rien : score z / Mahalanobis, Isolation Forest, LOF — trois façons de dire « ce point est bizarre ».
- #t-sne-umap — Cartographier la haute dimension : t-SNE et UMAP déplient des données à 10 dimensions en une carte 2D lisible — perplexité, voisins, et pièges de lecture.