Dimension intrinsèque

Unsupervised Learning in Python

Benjamin Wilson

Director of Research at lateral.io

Dimension intrinsèque d'une trajectoire de vol

  • 2 caractéristiques : longitude et latitude le long d'une trajectoire de vol
  • Le jeu de données semble bidimensionnel
  • Mais on peut l'approximer avec une seule caractéristique : le déplacement le long de la trajectoire
  • Il est intrinsèquement unidimensionnel
latitude  longitude
  50.529     41.513
  50.360     41.672
  50.196     41.835
...

Nuage de points : longitude en fonction de la latitude

Unsupervised Learning in Python

Dimension intrinsèque

  • Dimension intrinsèque = nombre de caractéristiques nécessaires pour approximer le jeu de données
  • Idée clé derrière la réduction de dimension
  • Quelle est la représentation la plus compacte des échantillons ?
  • Détectable avec l'ACP
Unsupervised Learning in Python

Jeu de données versicolor

  • « versicolor », une des espèces d'iris
  • Seulement 3 caractéristiques : longueur et largeur du sépale, largeur du pétale
  • Les échantillons sont des points en 3D
Unsupervised Learning in Python

La dimension intrinsèque de versicolor est 2

  • Les échantillons sont proches d'une feuille plane bidimensionnelle
  • On peut donc approximer avec 2 caractéristiques

Points versicolor tracés en 3D : longueur du sépale vs largeur du sépale vs largeur du pétale

Unsupervised Learning in Python

L'ACP repère la dimension intrinsèque

  • Les nuages de points ne fonctionnent que pour 2 ou 3 caractéristiques
  • L'ACP trouve la dimension intrinsèque pour tout nombre de caractéristiques
  • Dimension intrinsèque = nombre de composantes ACP à variance significative
Unsupervised Learning in Python

ACP des échantillons versicolor

Points versicolor après rotation en 3D : CP1 vs CP2 vs CP3

Unsupervised Learning in Python

Les composantes ACP sont triées par variance décroissante

Diagramme à bandes : numéro de composante ACP vs variance

Unsupervised Learning in Python

Variance et dimension intrinsèque

  • La dimension intrinsèque est le nombre de composantes ACP à variance significative
  • Dans notre exemple : les deux premières composantes
  • Donc la dimension intrinsèque est 2

Diagramme à bandes : numéro de composante ACP vs variance avec ligne rouge verticale entre 1 et 2

Unsupervised Learning in Python

Tracer les variances des composantes ACP

  • samples = tableau d'échantillons versicolor
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA

pca = PCA()
pca.fit(samples)
PCA()
features = range(pca.n_components_)
Unsupervised Learning in Python

Tracer les variances des composantes ACP

plt.bar(features, pca.explained_variance_)
plt.xticks(features)
plt.ylabel('variance')
plt.xlabel('PCA feature')
plt.show()

Diagramme à bandes : numéro de composante ACP vs variance

Unsupervised Learning in Python

La dimension intrinsèque peut être ambiguë

  • La dimension intrinsèque est une idéalisation
  • … il n'y a pas toujours une seule bonne réponse !
  • Vins du Piémont : on peut défendre 2, ou 3, voire plus

Diagramme à bandes : numéro de composante ACP vs variance pour le jeu de données sur les vins

Unsupervised Learning in Python

Passons à la pratique !

Unsupervised Learning in Python

Preparing Video For Download...