2010-09-10 5 views
4

Quelqu'un peut-il confirmer ou corriger this Wikipedia algorithm pour le calcul du premier composant principal? Je veux une implémentation simple de PCA en D, qui n'a pas de bibliothèques existantes pour PCA AFAIK. J'ai essayé d'implémenter ceci, et il ne semble pas que mes résultats sur des exemples simples correspondent à des trucs que je reçois de R ou d'Octave. Je suis à peu près sûr qu'il ne s'agit pas d'un bogue d'implémentation car j'ai vérifié plusieurs fois mon implémentation et même l'ai réécrit à partir de zéro, et c'est un algorithme assez simple.PCA: Quel est le problème avec cet algorithme?

Répondre

5

Votre matrice de données est-elle à zéro, comme l'exigent les conditions préalables? L'extrait de code n'est pas clair sur ce point, mais la façon dont la matrice de données est décrite à l'origine, je pense que les moyens de colonne doivent être zéro pour que la méthode de puissance fonctionne.

+0

Oui, c'était ça. Je pensais que la matrice dans son ensemble devait avoir zéro. – dsimcha

+0

Content de l'entendre. J'ai ajouté la clarification suivante à l'algorithme de Wikipedia: "Notez qu'ici une matrice de données moyenne nulle signifie que les colonnes de X^T devraient avoir chacune une moyenne nulle." Pourriez-vous confirmer s'il vous plaît que c'est en fait ce que vous avez fait pour réparer l'algorithme (au lieu de dire, par exemple, que les moyennes des colonnes de X sont nulles)? – qdjm

Questions connexes