Accueil / Factory / Algos ML / Isomap — factory / algos ML / réduction de dimension non linéaire

ALGORITHME ISOMAP.

Quand les données suivent une surface ou une trajectoire enroulée, la distance en ligne droite trompe : deux points proches à vol d'oiseau peuvent être très éloignés le long de la trajectoire. Isomap mesure les distances en suivant les données, de voisin en voisin, puis les déplie à plat.

Réduction de dimensionNon linéaireVariétésCapteursNiveau : avancé

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceRetrouve très bien une structure continue et régulière
InterprétabilitéL'axe déplié se lit comme une progression
VitessePlus courts chemins coûteux au-delà de quelques milliers de lignes
Facilité de réglageUn réglage clé, le nombre de voisins, et il est sensible
Tolérance aux données brutesUn seul point aberrant peut créer un raccourci et tout fausser
EN 30 SECONDES

Pour mesurer la distance entre deux villages de montagne, on suit la route en lacets, pas la ligne droite à travers la montagne.

1. On relie chaque point à ses voisins

Chaque mesure est reliée à ses k plus proches voisines. On obtient un réseau qui épouse la forme des données.

2. On mesure les distances le long du réseau

La distance entre deux points devient la longueur du plus court chemin dans ce réseau : c'est la distance géodésique, calculée par l'algorithme de Dijkstra ou de Floyd.

3. On déplie à plat

Un positionnement multidimensionnel classique (MDS) place les points en 1 ou 2 dimensions en respectant au mieux ces distances. La trajectoire enroulée devient une ligne droite.

LE CAS MÉTIER

maintenance · usinage / industrie
EN ENTRÉE

Trois indicateurs par cycle de coupe

1 000 cycles d'un outil de coupe. Deux indicateurs décrivent une spirale à mesure que l'outil s'use, le troisième varie avec la charge du jour. L'usure réelle n'est pas mesurée en production : les données sont simulées pour pouvoir la connaître.

EN SORTIE

Un indice d'usure sur un seul axe

Isomap déplie la spirale en un axe unique qui range les cycles dans l'ordre de l'usure. Cet axe sert d'indice de santé de l'outil, à suivre dans le temps pour planifier son remplacement.

CE QU'ON MESURE

L'ordre retrouvé

On mesure la corrélation de rang (Spearman) entre l'axe trouvé et l'usure réelle. Sur la simulation, Isomap retrouve l'ordre de façon quasi parfaite (1,00), quand le premier axe d'une ACP n'atteint que 0,23. En conditions réelles, on valide sur les outils dont l'usure a été mesurée en atelier.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Données qui suivent une trajectoire ou une surface continue : dégradation, cycle de vie, rotation
  • Construire un indice de progression à partir de plusieurs capteurs non linéaires
  • Visualiser une structure continue que l'ACP écrase
  • Jeux de taille modeste, jusqu'à quelques milliers de lignes

NON

  • Groupes séparés plutôt qu'une structure continue : t-SNE ou UMAP
  • Données bruitées ou avec des valeurs aberrantes : un raccourci dans le réseau ruine le dépliage
  • Grandes bases : le calcul des plus courts chemins devient lourd, préférer UMAP
  • Structure avec des trous ou des boucles fermées : Isomap suppose une surface dépliable d'un seul tenant
LES 3 RÉGLAGES QUI COMPTENT

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

k / n_neighbors

Nombre de voisins reliés. Trop petit : le réseau se coupe en morceaux, et vegan s'arrête alors avec une erreur. Trop grand : des raccourcis traversent les spires et Isomap se comporte comme une ACP. On teste de 5 à 15.

ndim / n_components

Nombre de dimensions dépliées : 1 pour un indice de progression, 2 pour une carte.

Mise à l'échelle

Les distances mélangent tous les indicateurs. S'ils sont dans des unités différentes, on les standardise, sinon le plus grand domine le réseau de voisins.

LE CODE MINIMAL

données simulées dans le code
# Usure d'un outil de coupe : Isomap en R
library(vegan)

set.seed(42)
# Usure réelle, inconnue en pratique : de 0 (outil neuf) à 1 (à changer)
usure <- sort(runif(1000))
# Deux indicateurs dont la trajectoire s'enroule avec l'usure, un troisième lié à la charge du jour
angle <- 3 * pi * (0.5 + usure)
charge <- 10 * runif(1000)
mesures <- cbind(angle * cos(angle), charge, angle * sin(angle))
mesures <- mesures + matrix(rnorm(3000, sd = 0.2), ncol = 3)

iso <- isomap(dist(mesures), ndim = 1, k = 10)
acp <- prcomp(mesures)$x[, 1]

# Corrélation de rang avec l'usure réelle : 1 = ordre parfaitement retrouvé
cat("Isomap :", round(abs(cor(iso$points[, 1], usure, method = "spearman")), 3), "\n")
cat("ACP    :", round(abs(cor(acp, usure, method = "spearman")), 3), "\n")

QUESTIONS FRÉQUENTES

Qu'est-ce qu'une distance géodésique ?

La distance mesurée en restant sur la surface des données, comme la longueur d'une route de montagne, par opposition à la distance en ligne droite. Isomap l'approche par le plus court chemin dans un réseau qui relie chaque point à ses voisins.

Quelle différence entre Isomap et l'ACP ?

L'ACP cherche des axes droits et conserve les distances en ligne droite. Isomap conserve les distances le long des données. Sur des données non enroulées, les deux donnent des résultats proches ; sur une spirale ou une surface courbe, seule Isomap retrouve la progression.

Pourquoi Isomap est-il sensible au bruit ?

Parce qu'un seul point mal placé peut relier deux parties éloignées de la surface. Le plus court chemin emprunte alors ce raccourci, et les distances de milliers de points deviennent fausses. On retire donc les valeurs aberrantes avant, et on vérifie la stabilité en faisant varier le nombre de voisins.

LES ALGOS VOISINS

à comparer avant de choisir
la version linéaire

ACP

Même objectif de résumé, mais avec des distances en ligne droite. Échoue sur une trajectoire enroulée.

Voir la fiche →
pour les groupes

t-SNE

Garde les voisinages locaux sans chercher à respecter les grandes distances. Meilleur pour voir des groupes que pour une progression.

Voir la fiche →
l'alternative rapide

UMAP

Repose aussi sur un graphe de voisins, passe à l'échelle et tolère mieux le bruit.

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 →