Description Usage Arguments Details Value References See Also Examples
View source: R/rTensor_Decomp.R
Canonical Polyadic (CP) decomposition of a tensor, aka CANDECOMP/PARAFRAC. Approximate a K-Tensor using a sum of num_components rank-1 K-Tensors. A rank-1 K-Tensor can be written as an outer product of K vectors. There are a total of num_compoents *tnsr@num_modes vectors in the output, stored in tnsr@num_modes matrices, each with num_components columns. This is an iterative algorithm, with two possible stopping conditions: either relative error in Frobenius norm has gotten below tol, or the max_iter number of iterations has been reached. For more details on CP decomposition, consult Kolda and Bader (2009).
1 |
tnsr |
Tensor with K modes |
num_components |
the number of rank-1 K-Tensors to use in approximation |
max_iter |
maximum number of iterations if error stays above |
tol |
relative Frobenius norm error tolerance |
Uses the Alternating Least Squares (ALS) estimation procedure. A progress bar is included to help monitor operations on large tensors.
a list containing the following
lambdasa vector of normalizing constants, one for each component
Ua list of matrices - one for each mode - each matrix with num_components columns
convwhether or not resid < tol by the last iteration
norm_percentthe percent of Frobenius norm explained by the approximation
estestimate of tnsr after compression
fnorm_residthe Frobenius norm of the error fnorm(est-tnsr)
all_residsvector containing the Frobenius norm of error for all the iterations
T. Kolda, B. Bader, "Tensor decomposition and applications". SIAM Applied Mathematics and Applications 2009.
1 2 3 4 5 | tnsr <- rand_tensor(c(6,7,8))
cpD <- cp(tnsr,num_components=5)
cpD$conv
cpD$norm_percent
plot(cpD$all_resids)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.