Pls, I need your help. I have a matrix of features X(100*2071 double). Then, I applied svd() on X as in the following code. I read a lot about svd (singular value decompisition) but I can not understand what is the purpose from s as in the code.

clear; clc;
load X; [ s, ~ ] = svd( X ); D = s( :, 1:20 );%100*20 %%Take only the 20 columns from s

3 Commenti

Using
[U,S,V] = svd(X)
U is the left singular vector such that
X=U*S*V'
The purpose of s in your code depends on what you want to do ...
You keep only the 20 columns from s, one reason to do that would be if you want to use this singular vector to make a project a set of data in order to decrease the dimension of your dataset.
In this what you want to do ?
Thank you so much for your reply. So the purpose from that is to reduce the dimension of features. Actually, from my reading about dictionary learning, I found that svd is used to create the dictionaries. Therefore, from the code above, D is a dictionary, which is 100*20 (only the 20 columns from s).
Pls if you know any elaborated code about this concept tell me. Thank you again.

Accedi per commentare.

Risposte (0)

Richiesto:

FAS
il 10 Gen 2018

Modificato:

FAS
il 10 Gen 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by