UMPCA | R Documentation |
This function implements the uncorrelated multilinear principal component analysis for tensors of dimension 2, 3 or 4. The code is basically the same as in the MATLAB toolbox UMPCA by Haiping Lu (Link: https://www.mathworks.com/matlabcentral/fileexchange/35432-uncorrelated-multilinear-principal-component-analysis-umpca, see also references).
UMPCA(TX, numP)
TX |
The input training data in tensorial representation, the last mode
is the sample mode. For |
numP |
The dimension of the projected vector, denoted as P in the paper. It is the number of elementary multilinear projections (EMPs) in tensor-to-vector projection. |
Us |
The multilinear projection, consisting of |
TXmean |
The mean
of the input training samples |
odrIdx |
The ordering index of projected features in decreasing variance. |
As this algorithm aims more at uncorrelated features than at an optimal reconstruction of the data, hence it might give poor results when used for the univariate decomposition of images in MFPCA.
Haiping Lu, K.N. Plataniotis, and A.N. Venetsanopoulos, "Uncorrelated Multilinear Principal Component Analysis for Unsupervised Multilinear Subspace Learning", IEEE Transactions on Neural Networks, Vol. 20, No. 11, Page: 1820-1836, Nov. 2009.
set.seed(12345) # define "true" components a <- sin(seq(-pi, pi, length.out = 100)) b <- exp(seq(-0.5, 1, length.out = 150)) # simulate tensor data X <- a %o% b %o% rnorm(80, sd = 0.5) # estimate one component UMPCAres <- UMPCA(X, numP = 1) # plot the results and compare to true values plot(UMPCAres$Us[[1]][,1]) points(a/sqrt(sum(a^2)), pch = 20) # eigenvectors are defined only up to a sign change! legend("topright", legend = c("True", "Estimated"), pch = c(20, 1)) plot(UMPCAres$Us[[2]][,1]) points(b/sqrt(sum(b^2)), pch = 20) legend("topleft", legend = c("True", "Estimated"), pch = c(20, 1))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.