Estoy usando la descomposición vectorial singular en una matriz y obteniendo las matrices U, S y Vt. En este punto, estoy tratando de elegir un umbral para la cantidad de dimensiones a retener. Me sugirieron que mirara un diagrama de pantalla pero me pregunto cómo trazarlo en numpy. Actualmente, estoy haciendo lo siguiente usando bibliotecas numpy y scipy en python:
U, S, Vt = svd(A)
¿Alguna sugerencia?
data-visualization
python
svd
Leyenda
fuente
fuente
S
, si aún no es una diagonal, cuadrátela, ordénela en orden decreciente, tome la suma acumulativa, divida por el último valor, luego grafíquela.[U,S,V] = svd(X);S = cumsum(sort(diag(S).^2,1,'descend'));S = S ./ S(end);plot(S);
Respuestas:
Aquí hay un ejemplo que se puede pegar en un indicador de IPython y generar una imagen como la siguiente (utiliza datos aleatorios):
fuente
num_vars
? no parece estar definido en tu script.