Я використовую сингулярне векторне розкладання на матриці та отримую матриці U, S та Vt. На даний момент я намагаюся вибрати поріг для кількості розмірів, які потрібно зберегти. Мені запропонували подивитися сюжет осипу, але мені цікаво, як іти про його побудову в нуметі. В даний час я роблю наступне, використовуючи бібліотеки numpy та scipy в python:
U, S, Vt = svd(A)
Будь-які пропозиції?
@shabbychef: Ти маєш на увазі, взяти сукупну суму і ділити на суму всіх значень правильно?
—
Легенда
так. У
—
матлабі
[U,S,V] = svd(X);S = cumsum(sort(diag(S).^2,1,'descend'));S = S ./ S(end);plot(S);
S
, якщо вона вже не є діагоналлю, квадратуйте її, сортуйте у порядку зменшення, візьміть сукупну суму, діліть на останнє значення, а потім побудуйте її.