hosvd {rTensor} | R Documentation |
(Truncated-)Higher-order SVD
Description
Higher-order SVD of a K-Tensor. Write the K-Tensor as a (m-mode) product of a core Tensor (possibly smaller modes) and K orthogonal factor matrices. Truncations can be specified via ranks
(making them smaller than the original modes of the K-Tensor will result in a truncation). For the mathematical details on HOSVD, consult Lathauwer et. al. (2000).
Usage
hosvd(tnsr, ranks = NULL)
Arguments
tnsr |
Tensor with K modes |
ranks |
a vector of desired modes in the output core tensor, default is |
Details
A progress bar is included to help monitor operations on large tensors.
Value
a list containing the following:
Z
core tensor with modes speficied by
ranks
U
a list of orthogonal matrices, one for each mode
est
estimate of
tnsr
after compressionfnorm_resid
the Frobenius norm of the error
fnorm(est-tnsr)
- if there was no truncation, then this is on the order of mach_eps * fnorm.
Note
The length of ranks
must match tnsr@num_modes
.
References
L. Lathauwer, B.Moor, J. Vanderwalle "A multilinear singular value decomposition". Journal of Matrix Analysis and Applications 2000.
See Also
Examples
tnsr <- rand_tensor(c(6,7,8))
hosvdD <- hosvd(tnsr)
plot(hosvdD$fnorm_resid)
hosvdD2 <- hosvd(tnsr,ranks=c(3,3,4))
plot(hosvdD2$fnorm_resid)