Hi all,
I am relevantly new in c# and not a profi (however, I hope to become a such once..), so please do not punish for stupid questions now.
I made a singular value decomposition of sparse matrix A(mxn) as A=UsV.
"Suppose M is an m-by-n matrix whose entries are real numbers.
K - is a number of latent features. Let's say 30.
How can I make SVD to calculate give results as only mxK in U, KxK(upper left) in Σ and nxK in VT?
I other words I need to cut U and VT so that we do not use memory for keeping resulting mxm and nxn matrices (they can be very huge, 500Kx500K for example) and get upper left KxK in Σ.
Question 2)
If first is not possible (seems so from the definitions at least).
How can I cut cols and rows in the matrix U, s and V using Math.NET?
For example, If i have 100x100 matrix, i need to get only 100x30 of it.
Thank you all for the help!
Best regards, Alex.
I am relevantly new in c# and not a profi (however, I hope to become a such once..), so please do not punish for stupid questions now.
I made a singular value decomposition of sparse matrix A(mxn) as A=UsV.
"Suppose M is an m-by-n matrix whose entries are real numbers.
Then there exists a factorization of the form M = UΣVT where:
- U is an m-by-m unitary matrix;
- Σ is m-by-n diagonal matrix with nonnegative real numbers on the diagonal;
- VT denotes transpose of V, an n-by-n unitary matrix; "
Question 1)K - is a number of latent features. Let's say 30.
How can I make SVD to calculate give results as only mxK in U, KxK(upper left) in Σ and nxK in VT?
I other words I need to cut U and VT so that we do not use memory for keeping resulting mxm and nxn matrices (they can be very huge, 500Kx500K for example) and get upper left KxK in Σ.
Question 2)
If first is not possible (seems so from the definitions at least).
How can I cut cols and rows in the matrix U, s and V using Math.NET?
For example, If i have 100x100 matrix, i need to get only 100x30 of it.
Thank you all for the help!
Best regards, Alex.