Używam pojedynczego rozkładu wektora na macierzy i otrzymuję macierze U, S i Vt. W tym momencie próbuję wybrać próg liczby wymiarów do zachowania. Zasugerowano mi, aby spojrzeć na fabułę piargową, ale zastanawiam się, jak zabrać się do kreślenia tego w numpy. Obecnie wykonuję następujące czynności przy użyciu bibliotek numpy i scipy w Pythonie:
U, S, Vt = svd(A)
Jakieś sugestie?
data-visualization
python
svd
Legenda
źródło
źródło
S
, jeśli nie jest to przekątna, wyprostuj ją, posortuj w malejącej kolejności, weź sumę skumulowaną, podziel przez ostatnią wartość, a następnie wykreśl.[U,S,V] = svd(X);S = cumsum(sort(diag(S).^2,1,'descend'));S = S ./ S(end);plot(S);
Odpowiedzi:
Oto przykład, który można wkleić do monitu IPython i wygenerować obraz jak poniżej (wykorzystuje losowe dane):
źródło
num_vars
? wydaje się, że nie jest zdefiniowane w twoim skrypcie.