Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques d'apprentissage automatique Discussion :

PCA et scikit-learn


Sujet :

Bibliothèques d'apprentissage automatique

  1. #1
    Membre à l'essai
    PCA et scikit-learn
    Bonjour,

    Je pense que j'utilise mal les fonctions PCA de scikit-learn, et je ne comprends pas pourquoi. Par exemple, lorsque je cherche à réduire la dimmensionnalité de 100 vecteurs de dimension 10000 à une dimension de 256:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import numpy as np
    import sklearn.decomposition as deco
    M = np.random.ranf((100,10000))
    PC = deco.PCA(n_components=256)
    PC.fit(M)


    Je m'attends donc à ce que, si j'applique la PCA définie par PC sur un nouveau vecteur 1x10000, j'aurai un vecteur de 1x256. Or,

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    PC.transform(M).shape
    vaut (100,100)

    Au lieu de réduire la dimmensionalité à 256, elle a été réduite à 100, alors que j'a précisé n_components=256.

    Pourriez-vous m'aider?

    Merci :-)

  2. #2
    Membre éprouvé
    Bonjour,

    Le problème est mathématique et non informatique. le rang d'une matrice [100,10000] est inférieur à 100, dès lors les valeurs propres sont nulles après la 100eme et n'importe quelle base de diagonalisation est arbitraire dans ce sous-espace ou la matrice s’annule.

    Tu peux toujours t'amuser à sélectionner 156 vecteurs arbitraires, orthonormés et dans l'orthogonal aux cent 1ers vecteurs renvoyés.

###raw>template_hook.ano_emploi###