Estou usando decomposição de vetor singular em uma matriz e obtendo as matrizes U, S e Vt. Neste ponto, estou tentando escolher um limite para o número de dimensões a serem mantidas. Foi-me sugerido que olhasse para uma trama de seixos, mas estou imaginando como proceder para traçá-la numpy. Atualmente, estou fazendo o seguinte usando bibliotecas numpy e scipy em python:
U, S, Vt = svd(A)
Alguma sugestão?
@shabbychef: Você quer dizer, pegue a soma acumulada e divida pela soma de todos os valores, certo?
—
Legend
sim. No matlab, seria
—
shabbychef
[U,S,V] = svd(X);S = cumsum(sort(diag(S).^2,1,'descend'));S = S ./ S(end);plot(S);
S
, se já não é uma diagonal, quadrie-a, classifique-a em ordem decrescente, pegue a soma acumulada, divida pelo último valor e plote-a.