Visualisation de la transformation PCA

Apprentissage non supervisé en Python

Benjamin Wilson

Director of Research at lateral.io

Réduction de dimension

  • Stockage et calcul plus efficaces
  • Supprimer les caractéristiques « parasites » moins informatives
  • … ce qui pose des problèmes pour les tâches de prédiction, par exemple la classification ou la régression
Apprentissage non supervisé en Python

Analyse en composantes principales

  • PCA = « Analyse en composantes principales » (Principal Component Analysis)
  • Technique de réduction de dimension fondamentale
  • Première étape « décorrélation » (examinée ici)
  • La deuxième étape réduit la dimension (examinée ultérieurement)
Apprentissage non supervisé en Python

PCA aligne les données avec les axes

  • Fait pivoter les échantillons de données afin de les aligner avec les axes
  • Déplace les échantillons de données de manière à ce qu'ils aient une moyenne de 0
  • Aucune information n'est perdue

scatter plot of wines data with rotated axes

Apprentissage non supervisé en Python

PCA suit le modèle « fit/transform » (ajuster/transformer)

  • PCA est un composant scikit-learn comme KMeans ou StandardScaler
  • fit() apprend la transformation à partir de données fournies
  • transform() applique la transformation apprise
  • transform() peut également être appliqué à de nouvelles données
Apprentissage non supervisé en Python

Utilisation de scikit-learn PCA

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

model = PCA() model.fit(samples)
PCA()
transformed = model.transform(samples)
Apprentissage non supervisé en Python

Caractéristiques PCA

  • Les lignes transformées correspondent aux échantillons
  • Les colonnes transformées sont les « caractéristiques PCA »
  • La ligne fournit les valeurs des caractéristiques PCA de l'échantillon correspondant
print(transformed)
[[  1.32771994e+00   4.51396070e-01]
 [  8.32496068e-01   2.33099664e-01]
 ...
 [ -9.33526935e-01  -4.60559297e-01]]
Apprentissage non supervisé en Python

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

  • Les caractéristiques des ensembles de données sont souvent corrélées, par exemple total_phenols et od280
  • PCA aligne les données avec les axes
  • Les caractéristiques PCA obtenues ne sont pas corrélées de manière linéaire (« décorrélation »)

scatter plot of wines data with rotated axes

Apprentissage non supervisé en Python

Corrélation de Pearson

  • Mesure la corrélation linéaire des caractéristiques
  • Valeur comprise entre -1 et 1
  • Une valeur de 0 indique qu'il n'y a pas de corrélation linéaire

3 scatter plots with correlation 0.7, 0, and -0.7

Apprentissage non supervisé en Python

Composantes principales

  • « Composantes principales » = directions de variance
  • PCA aligne les composants principaux avec les axes

scatter plot of wines data with 2 red arrows showing direction of principal components (rotated axes)

Apprentissage non supervisé en Python

Composantes principales

  • Disponible en tant qu'attribut components_ de l'objet PCA
  • Chaque ligne définit le déplacement par rapport à la moyenne
print(model.components_)
[[ 0.64116665  0.76740167]
 [-0.76740167  0.64116665]]
Apprentissage non supervisé en Python

Passons à la pratique !

Apprentissage non supervisé en Python

Preparing Video For Download...