Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Les jeux de données géoscientifiques portent souvent de nombreuses caractéristiques corrélées : concentrations en oxydes dans une analyse de roche, milliers de mailles d’un champ climatique, dizaines d’attributs de formes d’onde. Réduire la dimension avant de modéliser est utile parce que :

  1. Le coût de la plupart des algorithmes croît avec le nombre de dimensions d’entrée.
  2. Les caractéristiques redondantes ajoutent du calcul sans ajouter d’information.
  3. Les modèles plus simples sont plus robustes sur de petits jeux de données.
  4. Moins de caractéristiques rendent les données plus faciles à comprendre.
  5. La visualisation est plus aisée en deux ou trois dimensions.

Les techniques de réduction de dimension se rangent en deux catégories : la sélection de caractéristiques et l’extraction de caractéristiques.

1. Sélection de caractéristiques

La sélection de caractéristiques conserve un sous-ensemble des dimensions d’origine. Une approche de sélection ascendante part de la seule variable qui réduit le plus l’erreur et ajoute les variables une à une. Une sélection descendante part de toutes les variables et les retire une à une.

Un premier geste rapide consiste à regarder la matrice de corrélation : des caractéristiques fortement corrélées portent une information redondante, et l’on peut souvent en écarter une.

Nous utilisons une table géochimique synthétique issue du paquet du cours mlgeo_synth. Chaque ligne est une analyse sur roche totale : sept oxydes d’éléments majeurs en % massique (wt%), la masse volumique, la susceptibilité magnétique et une étiquette de lithologie (basalte, andésite ou granite).

🖥️ Diapositives du cours — Séance 10 (mer. 21 oct.)

Loading...
label granite 2794 basalt 1713 andesite 493 Name: count, dtype: int64
Loading...

SiO2 est fortement anticorrélé à MgO, FeO et CaO, et la masse volumique suit les oxydes mafiques. Deux effets produisent cette structure. D’abord la différenciation magmatique : à mesure qu’un magma évolue, SiO2 et K2O augmentent tandis que MgO, FeO et CaO diminuent. Ensuite la fermeture : les oxydes somment à environ 100 % massique, donc si l’un monte, les autres doivent descendre. Quelles caractéristiques écarteriez-vous au vu de cette matrice ?

2. Extraction de caractéristiques

L’extraction de caractéristiques construit un nouvel ensemble de dimensions, plus petit, formé de combinaisons des dimensions d’origine. Les méthodes peuvent être non supervisées (analyse en composantes principales, analyse en composantes indépendantes) ou supervisées (analyse discriminante linéaire).

3. Analyse en composantes principales

L’analyse en composantes principales (ACP, PCA) est une méthode non supervisée qui projette les données dans un espace de dimension inférieure avec une perte de variance minimale.

Soit Y=y1,⋯ ,yn\mathbf{Y} = \mathbf{y}_1,\cdots,\mathbf{y}_n les données, mesurées nn fois sur plusieurs champs de mesure (la longueur de y\mathbf{y}). Chaque colonne de Y\mathbf{Y} représente une observation unique. Chaque ligne de Y\mathbf{Y} représente un seul paramètre.

Pour réaliser une ACP :

  1. Centrer les données en soustrayant la moyenne de chaque ligne de Y\mathbf{Y} (et, en général, mettre chaque ligne à variance unitaire).
  2. Calculer la matrice de covariance des données centrées, C=1n−1Y∗Y\mathbf{C} = \frac{1}{n-1} \mathbf{Y}^{\ast}\mathbf{Y}. La matrice de covariance est symétrique semi-définie positive : elle est donc diagonalisable.
  3. Calculer la décomposition en valeurs singulières (SVD) :

X=UΣVT,\mathbf{X} = \mathbf{U} \Sigma \mathbf{V}^T,

où les colonnes de V\mathbf{V} sont les vecteurs propres, ou composantes principales. La première composante principale pointe dans la direction de plus forte variance.

3.1 La géométrie de l’ACP : un nuage gaussien tourné

Pour se forger une intuition, partons d’un nuage de points bidimensionnel : 10 000 observations tirées d’une gaussienne étirée et tournée.

<Figure size 640x480 with 1 Axes>

Étape 1 : soustraire la moyenne

<Figure size 640x480 with 1 Axes>
shape of B (2, 10000) and shape of covB (2, 2)
[[1.21210083 1.65131023]
 [1.65131023 3.08978984]]

Étape 2 : SVD de la matrice de covariance

eigenvalues (variances along each axis): [4.05048593 0.25140474]
eigenvectors (rows of VT):
[[-0.50286768 -0.8643634 ]
 [-0.8643634   0.50286768]]

Les valeurs propres sont proches de σ2=[4,0.25]\sigma^2 = [4, 0.25], les carrés des longueurs des axes utilisés pour construire le nuage.

Étape 3 : explorer le résultat

<Figure size 640x480 with 1 Axes>
<Figure size 640x480 with 1 Axes>

La projection fait tourner le nuage de sorte que la direction de plus grande variance se place le long de l’axe horizontal. L’ACP a retrouvé la rotation que nous avons utilisée pour engendrer les données.

3.2 ACP sur une table géochimique

Appliquons maintenant l’ACP à la table géochimique de la section 1. Les caractéristiques doivent d’abord être standardisées : les oxydes couvrent des dizaines de % massique tandis que la susceptibilité magnétique est de l’ordre de 10-3 SI, et sans mise à l’échelle les caractéristiques de grande amplitude domineraient la covariance.

Explained variance ratio: [0.782 0.097 0.06  0.037 0.01  0.006 0.004 0.003 0.001]
<Figure size 700x400 with 1 Axes>

Une seule composante capture l’essentiel de la variance, et deux en capturent la quasi-totalité. Les données vivent sur une surface de dimension bien plus basse que ne le laissent croire les neuf caractéristiques mesurées.

Les saturations nous disent ce que signifient les composantes. Chaque composante principale est une combinaison pondérée des caractéristiques d’origine ; les poids s’appellent les saturations (loadings).

<Figure size 1200x400 with 2 Axes>

Sur PC1, SiO2, K2O et Na2O ont un signe tandis que MgO, FeO, CaO, la masse volumique et la susceptibilité magnétique ont l’autre. C’est exactement la structure de corrélation observée à la section 1 : la fermeture des oxydes plus la différenciation magmatique. PC1 joue le rôle d’un indice de différenciation. Le score PC1 d’un échantillon dit où il se situe sur le spectre basalte-granite, en un seul nombre.

Notez que le signe d’une composante est arbitraire : la SVD peut renvoyer l’une ou l’autre orientation, seuls les signes relatifs des saturations comptent.

<Figure size 800x600 with 1 Axes>

L’ACP n’a jamais vu les étiquettes, et pourtant les trois lithologies se séparent le long de PC1, parce que la composition et la lithologie sont pilotées par le même processus sous-jacent. C’est une issue fréquente et utile : une méthode non supervisée retrouve un axe physiquement interprétable.

Note pratique : la SVD complète est coûteuse pour de grandes matrices. Scikit-learn bascule automatiquement sur un solveur d’ACP randomisée quand les données dépassent 500 x 500 et que le nombre de composantes demandées est inférieur à 80 % de la plus petite dimension.

3.3 Analyse en EOF d’un champ climatique

Appliquée à des données spatio-temporelles, l’ACP donne deux objets liés :

  • Les fonctions orthogonales empiriques (EOF) : les vecteurs propres spatiaux de la covariance des données. Chaque EOF est une carte qui explique une part de la variance totale. En sciences du climat, les EOF identifient des motifs dominants comme des modes de circulation ou des structures d’anomalies de température.
  • Les composantes principales (PC) : les séries temporelles qui disent avec quelle force chaque EOF s’exprime à chaque pas de temps.

Ensemble, EOF et PC décrivent la variabilité spatio-temporelle du jeu de données.

Nous utilisons mlgeo_synth.climate_field, qui engendre 30 ans d’anomalies mensuelles de température sur une grille globale. Le générateur y plante des structures connues — un mode saisonnier, un mode zonal (de type terre/océan) et une tendance de réchauffement — et les renvoie dans un dictionnaire truth, ce qui nous permet de vérifier si l’analyse en EOF les retrouve.

field shape (months, lat, lon): (360, 40, 80)
truth keys: ['lat', 'lon', 'seasonal_pattern', 'zonal_pattern', 'trend_c_per_decade']
<Figure size 800x400 with 2 Axes>

Pondération par l’aire. La grille est à pas angulaire constant : les mailles sont régulièrement espacées en latitude et en longitude. Mais l’aire physique d’une maille se rétrécit vers les pôles en cos⁡(ϕ)\cos(\phi). Sans correction, la matrice de covariance surreprésente les hautes latitudes — beaucoup de mailles, peu d’aire réelle. La correction standard consiste à multiplier chaque point de grille par cos⁡(ϕ)\sqrt{\cos(\phi)} avant la SVD, pour que la contribution de chaque maille à la variance (qui est quadratique en les données) soit proportionnelle à son aire.

Variance fraction of first 5 modes: [0.955 0.038 0.006 0.    0.   ]
<Figure size 1200x900 with 9 Axes>

Avons-nous retrouvé la structure plantée ? Le dictionnaire truth contient les motifs saisonnier et zonal utilisés par le générateur. Nous les comparons aux EOF retrouvées par une corrélation de motifs spatiaux. Le signe d’une EOF est arbitraire (une EOF et son opposée décrivent le même mode, avec la PC retournée en conséquence) : nous regardons donc la valeur absolue de la corrélation.

                seasonal_pattern       zonal_pattern
        EOF1                1.00               -0.00
        EOF2                0.00               -1.00
        EOF3               -0.12               -0.23

EOF1 correspond au motif saisonnier planté et EOF2 au motif zonal planté, avec des corrélations de +/-1. Une corrélation de -1 vaut ici tout autant que +1 : c’est le même mode, avec la carte et sa PC toutes deux retournées. Regardez aussi les séries temporelles des PC : la PC saisonnière oscille avec une période de 12 mois, la PC zonale varie sans tendance, et PC3 — dont la carte se concentre aux hautes latitudes nord — dérive régulièrement dans une direction. C’est la tendance de réchauffement plantée de 0,25 °C par décennie, amplifiée vers l’Arctique (que la dérive apparaisse vers le haut ou vers le bas dépend là encore du signe arbitraire de l’EOF).

Limites de l’ACP sur des données spatio-temporelles. Les EOF sont contraintes à être orthogonales, alors que les modes physiques de variabilité ne le sont pas : une seule EOF peut donc mélanger plusieurs processus et en scinder d’autres. L’ACP est linéaire, donc une dynamique non linéaire se répartit sur de nombreuses composantes. Les tendances de grande échelle peuvent dominer les premiers modes et masquer des signaux locaux. Et les résultats sont sensibles aux choix de prétraitement : retirer ou non le cycle saisonnier, comment mettre les variables à l’échelle, comment pondérer la grille. Traitez les EOF comme une description de la variance, pas automatiquement comme des modes physiques.

4. Analyse en composantes indépendantes

L’analyse en composantes indépendantes (ICA) sépare un signal multivarié en composantes additives, statistiquement indépendantes et non gaussiennes. C’est une forme de séparation aveugle de sources.

Différences avec l’ACP :

  • L’ACP trouve des axes orthogonaux qui maximisent la variance, à partir des statistiques d’ordre deux (la covariance). Ses composantes sont décorrélées mais pas nécessairement indépendantes.
  • L’ICA trouve des composantes statistiquement indépendantes, pas nécessairement orthogonales, en exploitant la non-gaussianité. Elle exige que les sources soient non gaussiennes.

En géosciences, l’ICA sert à la séparation aveugle de sources quand plusieurs processus inconnus sont mélangés dans les mesures — séparer par exemple les contributions sismique, hydrologique et saisonnière dans des séries temporelles géodésiques.

La démonstration classique : trois signaux sources connus sont mélangés vers trois « récepteurs », et FastICA les démélange.

<Figure size 1100x800 with 4 Axes>

L’ICA retrouve les trois sources (à l’ordre, au signe et à l’échelle près). L’ACP, non : ses composantes orthogonales de variance maximale restent des mélanges des sources.

5. t-SNE pour la visualisation

L’ACP est linéaire. Le t-SNE (t-distributed Stochastic Neighbor Embedding) est une méthode non linéaire conçue pour la visualisation : elle place les points en 2D de sorte que des voisins dans l’espace de grande dimension restent voisins dans le plan. Elle préserve bien la structure locale, mais les distances entre groupes sur un graphique t-SNE n’ont pas de sens, et elle est trop lente pour les grands jeux de données — nous sous-échantillonnons donc.

Le paramètre perplexity fixe en gros le nombre de voisins que chaque point prend en compte. De petites valeurs fragmentent les données en une multitude de petits amas ; de grandes valeurs brouillent le détail local. Essayez toujours plusieurs valeurs.

<Figure size 1200x500 with 2 Axes>

Les deux plongements séparent les lithologies, mais la géométrie change avec la perplexité — un rappel que les graphiques t-SNE sont qualitatifs. UMAP est une alternative populaire et plus rapide, aux objectifs voisins ; elle n’est pas installée dans l’environnement du cours, mais vous pouvez l’ajouter avec le paquet umap-learn si vous voulez comparer.

6. Autres techniques

  1. Projections aléatoires
  2. Positionnement multidimensionnel
  3. Isomap
  4. Analyse discriminante linéaire (supervisée)