Analyse en composantes principales

Réduction de dimensionnalité en Python

Jeroen Boeye

Head of Machine Learning, Faktion

Concept de l'ACP

longueur de la main vs du pied avec deux vecteurs

Réduction de dimensionnalité en Python

Concept de l'ACP

longueur main vs pied avec vecteurs et coordonnées

Réduction de dimensionnalité en Python

Concept de l'ACP

longueur main vs pied avec vecteurs et coordonnées PC

Réduction de dimensionnalité en Python

Calcul des composantes principales

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
std_df = scaler.fit_transform(df)

from sklearn.decomposition import PCA pca = PCA() print(pca.fit_transform(std_df))
[[-0.08320426 -0.12242952]
 [ 0.31478004  0.57048158]
 ...
 [-0.5609523   0.13713944]
 [-0.0448304  -0.37898246]]
Réduction de dimensionnalité en Python

L'ACP supprime la corrélation

transformation par ACP

Réduction de dimensionnalité en Python

Proportion de variance expliquée des composantes principales

from sklearn.decomposition import PCA

pca = PCA()

pca.fit(std_df)

print(pca.explained_variance_ratio_)
array([0.90, 0.10])
Réduction de dimensionnalité en Python

ACP pour la réduction de dimension

jambe gauche vs jambe droite

Réduction de dimensionnalité en Python

ACP pour la réduction de dimension

jambe gauche vs jambe droite avec vecteurs

print(pca.explained_variance_ratio_)
array([0.9997, 0.0003])
Réduction de dimensionnalité en Python

ACP pour la réduction de dimension

pca = PCA()

pca.fit(ansur_std_df)

print(pca.explained_variance_ratio_)
array([0.44, 0.18, 0.04, 0.03, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01, 0.01,
       0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
       0.01, 0.01, 0.01, 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  ,
       ...
       0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  ,
       0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  ,
       0.  , 0.  , 0.  , 0.  , 0.  , 0.  ])
Réduction de dimensionnalité en Python

ACP pour la réduction de dimension

pca = PCA()

pca.fit(ansur_std_df)

print(pca.explained_variance_ratio_.cumsum())
array([0.44, 0.62, 0.66, 0.69, 0.72, 0.74, 0.76, 0.77, 0.79, 0.8 , 0.81,
       0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.87, 0.88, 0.89, 0.89, 0.9 ,
       0.9 , 0.91, 0.92, 0.92, 0.92, 0.93, 0.93, 0.94, 0.94, 0.94, 0.95,
       ...
       0.99, 0.99, 0.99, 0.99, 0.99, 1.  , 1.  , 1.  , 1.  , 1.  , 1.  ,
       1.  , 1.  , 1.  , 1.  , 1.  , 1.  , 1.  , 1.  , 1.  , 1.  , 1.  ,
       1.  , 1.  , 1.  , 1.  , 1.  , 1.  ])
Réduction de dimensionnalité en Python

Passons à la pratique !

Réduction de dimensionnalité en Python

Preparing Video For Download...