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?
@shabbychef: ¿Quiere decir que tome la suma acumulativa y divida por la suma de todos los valores, verdad?
—
Leyenda
si. En matlab, sería
—
shabbychef
[U,S,V] = svd(X);S = cumsum(sort(diag(S).^2,1,'descend'));S = S ./ S(end);plot(S);
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.