Was ist die rechnerische Komplexität bei der Berechnung der Varianz-Kovarianz-Matrix?

8

Ich verwende eine Berechnung der Varianz-Kovarianz-Matrix in einem Programm, das ich geschrieben habe (für die Hauptkomponentenanalyse), und frage mich, wie komplex sie ist. Während die Eigenvektorzerlegung offensichtlich den größten Leistungstreffer verursacht, frage ich mich, wie viel von diesem Treffer durch die Covarianzmatrixberechnung verursacht wird.

Die asymptotische Laufzeit, die ich schätze, ist Verwendung eines naiven Algorithmus, da er die Mittel aller Daten der Größe N verwenden muss und dies dann für jede Dimension tun muss (wobei n die ist Anzahl der Dimensionen) in einer verschachtelten Iteration, wodurch eine n 2 -Größenmatrix erzeugt wird.O(Nn2)Nnn2

Ist meine Annahme richtig oder wenn nicht, wie hoch ist die asymptotische Komplexität?

Noch ein Geek
quelle

Antworten:

2

Ihre Vermutung ist richtig.

Wenn mit N als Anzahl der Datenpunkte und n die Anzahl der Merkmale ist, können Sie die Kovarianzmatrix durch X T X erhalten (abgesehen von der mittleren Subtraktion, die aus Sicht der Komplexität ignoriert werden kann).XRN×nNnXTX

Daher ist die Kovarianzmatrixberechnung eine Matrixmultiplikation, die in der Tat in naiv ist siehe hier) , da Sie ungefähr Operationen ausführen müssen, um jede der Positionen in Ihrer Kovarianzmatrix zu füllen . In der Praxis wird die Matrixmultiplikation für quadratische Matrizen auf beschleunigt (siehe Link).O(Nn²) 2Nn²XO(n2.73)

dopexxx
quelle