Je suis tombé sur un scénario où j'ai 10 signaux / personne pour 10 personnes (donc 100 échantillons) contenant 14000 points de données (dimensions) que je dois transmettre à un classificateur. Je voudrais réduire la dimensionnalité de ces données et l'ACP semble être le moyen de le faire. Cependant, je n'ai pu trouver que des exemples de PCA où le nombre d'échantillons est supérieur au nombre de dimensions. J'utilise une application PCA qui trouve les PC utilisant SVD. Lorsque je lui passe mon jeu de données 100x14000, 101 PC sont retournés, de sorte que la grande majorité des dimensions sont évidemment ignorées. Le programme indique que les 6 premiers PC contiennent 90% de la variance.
Est-il raisonnable de supposer que ces 101 PC contiennent essentiellement toute la variance et que les dimensions restantes sont négligeables?
L'un des articles que j'ai lus affirme que, en utilisant un ensemble de données similaire (bien que de qualité légèrement inférieure) que le mien, ils ont pu réduire 4500 dimensions à 80 en conservant 96% des informations d'origine. Le papier fait des vagues sur les détails de la technique PCA utilisée, seulement 3100 échantillons étaient disponibles, et j'ai des raisons de croire que moins d'échantillons que ceux qui ont été utilisés pour effectuer réellement l'ACP (pour éliminer le biais de la phase de classification).
Suis-je en train de manquer quelque chose ou est-ce vraiment la façon dont l'ACP est utilisée avec un ensemble de données à haute dimensionnalité et faible taille d'échantillon? Tous commentaires serait grandement apprécié.
Réponses:
J'examinerais le problème sous un angle légèrement différent: dans quelle mesure un modèle peut-il se permettre avec seulement 10 sujets / 100 échantillons?
Et cette question à laquelle je réponds habituellement: beaucoup moins de 100 PC. Notez que je travaille sur un type de données différent (spectres vibrationnels), donc les choses peuvent varier un peu. Dans mon domaine, une configuration commune consisterait à utiliser 10, 25 ou 50 PC calculés à partir des spectres O (1000) de sujets O (10).
Voici ce que je ferais:
Regardez la variance couverte par ces 100 PC. Je trouve généralement que seuls quelques composants contribuent réellement à la variance de nos données.
Je préfère de beaucoup le PLS comme prétraitement pour la classification au lieu de l'ACP car il fait un bien meilleur travail pour trier les directions qui ont une variation élevée qui n'aide pas la classification (dans mon cas, cela pourrait être des variations de focalisation, des épaisseurs d'échantillon différentes,. ..). D'après mon expérience, j'obtiens souvent des classificateurs similaires avec 10 variables latentes PLS ou 25 à 50 PC.
Les échantillons de validation doivent être traités avec la rotation PCA calculée à partir de l'ensemble de formation uniquement, sinon la validation peut (et dans des cas extrêmes comme le vôtre le plus probablement) avoir un grand biais trop optimiste.
En d'autres termes, si vous effectuez un bootstrap ou une validation croisée, le prétraitement PCA ou PLS doit être calculé séparément pour chaque combinaison train / ensemble de tests.
la source
la source
Venant à cela sous un angle différent:
la source