PCA by optimization
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I'd like to find the principal components of a data matrix X by solving the optimization problem min||X-XBB'||, where the norm is the Frobenius norm, and B is an orthonormal matrix. I'm wondering if anyone could tell me how to do that. Ideally, I'd like to be able to do this using the optimization toolbox. I know how to find the principal components using other methods. My goal is to understand how to set up and solve an optimization problem which has a matrix as the answer. I'd very much appreciate any suggestions or comments.
Thanks! MJ
0 Commenti
Risposte (1)
Steve Grikschat
il 10 Mag 2012
Hi MJ,
Optimization toolbox functions will minimize over "X" where X can be a matrix or vector. Internally, matrices get flattened out into vectors (i.e. x = X(:)). When calling your function, the optimization solvers will call with a matrix of the correct size.
You can pass your constraints in a similar way, although beware about the sizes of the linear constraint matrices. Their sizes should match with the vector length (size(A,2) == numel(X)).
Try it out:
% Define B and initial guess at solution X0
[Xsol,fval] = fminunc(@(X) norm(X-X*B*B','fro'),X0);
Vedere anche
Categorie
Scopri di più su Dimensionality Reduction and Feature Extraction in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!