Wie berechne ich die Varianz einer Spalte einer dünn besetzten Matrix in Scipy?

8

Ich habe ein großes scipy.sparse.csc_matrix und möchte es normalisieren. Das subtrahiert den Spaltenmittelwert von jedem Element und dividiert durch die Spaltenstandardabweichung (std) i.

scipy.sparse.csc_matrix hat .mean() aber gibt es eine effiziente Möglichkeit, die Varianz oder Std zu berechnen?

    
nickponline 29.08.2012, 01:08
quelle

2 Antworten

6

Sie können die Abweichung selbst berechnen, indem Sie den Mittelwert mit der folgenden Formel verwenden:

%Vor%

E[X] steht für den Mittelwert. Um also E[X^2] zu berechnen, müssten Sie das csc_matrix quadrieren und dann die Funktion mean verwenden. Um (E[X])^2 zu erhalten, müssen Sie einfach das Ergebnis der Funktion mean quadrieren, die Sie mit der normalen Eingabe erhalten haben.

    
Sicco 29.08.2012, 09:31
quelle
3

Der effiziente Weg besteht eigentlich darin, die gesamte Matrix zu verdichten und dann auf die übliche Weise mit

zu standardisieren %Vor%

Wie @Sebastian in seinen Kommentaren angemerkt hat, zerstört die Standardisierung die Sparsity-Struktur (führt viele Nicht-Null-Elemente ein) in den Subtraktionsschritt, so dass es keinen Zweck hat, die Matrix in einem spärlichen Format zu halten.

    
Fred Foo 29.08.2012 12:16
quelle

Tags und Links