Maths
SVD and PCA
SVD
For an inverse problem: \(d = Gm\)
- \(d(l)\) is the data vector
 - \(G(l,n)\) the forward model matrix
 - \(m(n)\) the model vector.
 
The following decomposition always exists: \(G = USV^T\)
- \(U(l,l)\) is an orthogonal matrix containing unit basis vectors of the data space
 - \(S(l,n)\) is a diagonal matrix with singular values on the diagonal
 - \(V(n,n)\) is an orthogonal matrix containing unit basis vectors of the model space
 
If \(G\) has a rank \(p\), \(S\) has only \(p\) singular values
\(G = U_pS_pV_p^T\) These are the reduced matrices sizes:
- unit vectors data space: \(U(l,p)\)
 - singular values: \(S(p,p)\)
 - unit vectors model space: \(V(n,n-p)\)
 
PCA
Preprocessing : each feature has to be centered and scaled.
m = 100; % n samples
n = 21; % nfeatures
k = 5;  % number of desired output features
x = rand(100,21);
Sigma = cov(x);
[U,S,V] = svd(Sigma);
- Retain only the first \(k\) columns of \(U\).
U_ = U(:,1:k); - Apply the transform to the original \(x\) vector to get the new features \(z\)
z = x * U_;\(z = U_{red}^Tx\)
 - input features \(x(m,n)\)
 - covariance matrix \(\Sigma(n,n)\)
 - data space basis vectors \(U(n,n)\)
 - reduced data space basis vectors \(U_{red}(n,k)\)
 
References and Further Reading
R. Aster, B. Borchers, C. Thurber. Parameter Estimation and Inverse Problems.
  Olivier    MATHS