Visualiser la transformation par ACP

Unsupervised Learning in Python

Benjamin Wilson

Director of Research at lateral.io

Réduction de dimension

  • Stockage et calcul plus efficaces
  • Retirer les caractéristiques « bruit » peu informatives
  • … qui nuisent aux tâches de prédiction, p. ex. classification, régression
Unsupervised Learning in Python

Analyse en composantes principales

  • ACP = « Analyse en composantes principales »
  • Technique fondamentale de réduction de dimension
  • Première étape : « décorrélation » (vue ici)
  • Deuxième étape : réduction de dimension (vue plus tard)
Unsupervised Learning in Python

L'ACP aligne les données sur les axes

  • Fait pivoter les échantillons pour les aligner sur les axes
  • Centre les échantillons à une moyenne de 0
  • Aucune information n'est perdue

nuage de points des vins avec axes pivotés

Unsupervised Learning in Python

ACP suit le modèle fit/transform

  • PCA est un composant scikit-learn comme KMeans ou StandardScaler
  • fit() apprend la transformation à partir des données
  • transform() applique la transformation apprise
  • transform() peut aussi s'appliquer à de nouvelles données
Unsupervised Learning in Python

Utiliser l'ACP de scikit-learn

  • samples = tableau de deux caractéristiques (total_phenols et od280)
[[ 2.8   3.92]
 ...
 [ 2.05  1.6 ]]
from sklearn.decomposition import PCA

model = PCA() model.fit(samples)
PCA()
transformed = model.transform(samples)
Unsupervised Learning in Python

Caractéristiques ACP

  • Les lignes de transformed correspondent aux échantillons
  • Les colonnes sont les « caractéristiques ACP »
  • Chaque ligne donne les valeurs ACP de l'échantillon correspondant
print(transformed)
[[  1.32771994e+00   4.51396070e-01]
 [  8.32496068e-01   2.33099664e-01]
 ...
 [ -9.33526935e-01  -4.60559297e-01]]
Unsupervised Learning in Python

Les caractéristiques ACP ne sont pas corrélées

  • Les caractéristiques d'un ensemble de données sont souvent corrélées, p. ex. total_phenols et od280
  • L'ACP aligne les données sur les axes
  • Les caractéristiques ACP résultantes ne sont pas linéairement corrélées (« décorrélation »)

nuage de points des vins avec axes pivotés

Unsupervised Learning in Python

Corrélation de Pearson

  • Mesure la corrélation linéaire des caractéristiques
  • Valeur entre -1 et 1
  • Valeur de 0 : aucune corrélation linéaire

3 nuages de points avec corrélation 0,7, 0 et -0,7

Unsupervised Learning in Python

Composantes principales

  • « Composantes principales » = directions de variance
  • L'ACP aligne les composantes principales sur les axes

nuage de points des vins avec 2 flèches rouges indiquant la direction des composantes principales (axes pivotés)

Unsupervised Learning in Python

Composantes principales

  • Disponible dans l'attribut components_ de l'objet PCA
  • Chaque ligne définit un déplacement depuis la moyenne
print(model.components_)
[[ 0.64116665  0.76740167]
 [-0.76740167  0.64116665]]
Unsupervised Learning in Python

Passons à la pratique !

Unsupervised Learning in Python

Preparing Video For Download...