tTUCKER: Tucker (2) Transformation for a Tensor

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/tTUCKER.R

Description

This is a Tucker (2) transformation of a data tensor where the sampling dimension is uncompressed. The transfromation is known also under many different names like multilinear principal components analysis or generalized low rank approximation of matrices if the tensorial data is matrixvalued.

Usage

1
tTUCKER(x, ranks, maxiter = 1000, eps = 1e-06)

Arguments

x

array with r+1 dimensions where the last dimension corresponds to the sampling units.

ranks

vector of length r giving the dimensions of the compressed core tensor.

maxiter

maximum number of iterations for the algorithm.

eps

convergence tolerance.

Details

As initial solution tPCA is used and iterated using an alternating least squares (ALS) approach, known also as higher order orthogonal iteration (HOOI).

Value

A list containing the following components:

S

array of the compressed tensor.

U

list containing the rotation matrices.

Xmu

the data location.

norm2xc

squared norm of the original data tensor after centering.

norm2rxc

squared norm of the reconstructed (centered) data tensor.

norm2ratio

the ratio norm2rxc/norm2xc.

mEV

list containing the eigenvalues from the m-mode covariance matrix when all but the relevant mode have be compressed.

tPCA

The output from tPCA which was used as initial value.

Author(s)

Klaus Nordhausen

References

Lu, H., Plataniotis, K. and Venetsanopoulos, A. (2008), MPCA: Multilinear principal component analysis of tensor objects, IEEE Transactions on Neural Networks, 19, 18-39. doi: 10.1109/TNN.2007.901277

Lietzen, N., Nordhausen, K. and Virta, J. (2019), Statistical analysis of second-order tensor decompositions, manuscript.

See Also

tPCA

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
data(zip.train)
x <- zip.train

rows <- which(x[, 1] == 0 | x[, 1] == 1)
x0 <- x[rows, 2:257]
y0 <- x[rows, 1] + 1

x0 <- t(x0)
dim(x0) <- c(16, 16, 2199)

tucker <-  tTUCKER(x0, ranks = c(2, 2), eps=1e-03)
pairs(t(apply(tucker$S, 3, c)), col=y0)

# To approximate the original data one uses then
x0r <- tensorTransform2(tucker$S, tucker$U)

tensorBSS documentation built on June 2, 2021, 9:08 a.m.