Mis a jour le 2024-06-16, 21:53

Principal Component Analysis - PCA

Calcul de la PCA (en utilisant la singular value decomposition) :
from sklearn import datasets
from sklearn import decomposition

iris = datasets.load_iris()

pca = decomposition.PCA()
pca.fit(iris.data)
  
Attention, par défaut, cette fonction centre les variables mais ne les réduit pas ! Si les unités de chaque variable sont différentes, il faut réduire les données :
    X = (iris.data - iris.data.mean(axis = 0)) / iris.data.std(axis = 0)
  
Quelques paramètres pris en entrée : Champs produits dans l'objet pca (de type sklearn.decomposition.pca.PCA), à accéder par pca.explained_variance_ratio_ par exemple :
Cercle des corrélations :
an = numpy.linspace(0, 2 * numpy.pi, 100)
pyplot.plot(numpy.cos(an), numpy.sin(an))
for i in range(X.shape[1]):
    x = numpy.corrcoef(pc1, X[:,i])[0, 1]
    y = numpy.corrcoef(pc2, X[:,i])[0, 1]
    pyplot.annotate('', xy = (x, y), xytext = (0,0), arrowprops = {'arrowstyle': '->'})
    pyplot.annotate(featureNames[i], xy = (x + 0.02, y + 0.02))
pyplot.axis('equal')
  

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert