Ich verwende eine singuläre Vektorzerlegung auf einer Matrix und erhalte die U-, S- und Vt-Matrizen. An dieser Stelle versuche ich, einen Schwellenwert für die Anzahl der beizubehaltenden Dimensionen auszuwählen. Mir wurde vorgeschlagen, mir ein Geröllplot anzusehen, aber ich frage mich, wie ich es in Numpy planen soll. Derzeit mache ich Folgendes mit numpy und scipy Bibliotheken in Python:
U, S, Vt = svd(A)
Irgendwelche Vorschläge?
data-visualization
python
svd
Legende
quelle
quelle
S
, wenn es noch keine Diagonale ist, quadrieren Sie sie, sortieren Sie sie in absteigender Reihenfolge, nehmen Sie die kumulative Summe, dividieren Sie durch den letzten Wert und zeichnen Sie sie dann auf.[U,S,V] = svd(X);S = cumsum(sort(diag(S).^2,1,'descend'));S = S ./ S(end);plot(S);
Antworten:
Hier ist ein Beispiel, das in eine IPython-Eingabeaufforderung eingefügt werden kann und ein Bild wie unten generiert (es werden zufällige Daten verwendet):
quelle
num_vars
? Es scheint nicht in Ihrem Skript definiert zu sein.