dNTF | R Documentation |

This function is the discretized version of nnTensor::NTF. The input data X is assumed to be a non-negative tensor and decomposed to a product of a diagonal core tensor (S) and low-dimensional factor matrices (A_k, k=1..K). Unlike regular NTF, in dNTF, each A_k is estimated by adding binary regularization so that the values are 0 or 1 as much as possible. Likewise, each A_k are estimated by adding ternary regularization so that the values are 0, 1, or 2 as much as possible.

```
dNTF(X, M=NULL, pseudocount=.Machine$double.eps,
initA=NULL, fixA=FALSE,
Bin_A=rep(1e-10, length=length(dim(X))),
Ter_A=rep(1e-10, length=length(dim(X))),
L1_A=rep(1e-10, length=length(dim(X))),
L2_A=rep(1e-10, length=length(dim(X))),
rank = 3,
algorithm = c("Frobenius", "KL", "IS", "Beta"),
init = c("dNMF", "Random"),
Beta = 2, thr = 1e-10, num.iter = 100, viz = FALSE, figdir = NULL,
verbose = FALSE)
```

`X` |
K-order input tensor which has I_1, I_2, ..., and I_K dimensions. |

`M` |
K-order mask tensor which has I_1, I_2, ..., and I_K dimensions. If the mask tensor has missing values, specify the element as 0 (otherwise 1). |

`pseudocount` |
The pseudo count to avoid zero division, when the element is zero (Default: Machine Epsilon). |

`initA` |
A list containing the initial values of K factor matrices (A_k, <Ik*Jk>, k=1..K, Default: NULL). |

`fixA` |
Whether the factor matrices Ak are updated in each iteration step (Default: FALSE). |

`Bin_A` |
A K-length vector containing the paramters for binary (0,1) regularitation (Default: rep(1e-10, length=length(dim(X)))). |

`Ter_A` |
A K-length vector containing the paramters for terary (0,1,2) regularitation (Default: rep(1e-10, length=length(dim(X)))). |

`L1_A` |
A K-length vector containing the paramters for L1 regularitation (Default: rep(1e-10, length=length(dim(X)))). This also works as small positive constant to prevent division by zero, so should be set as 0. |

`L2_A` |
A K-length vector containing the paramters for L2 regularitation (Default: rep(1e-10, length=length(dim(X)))). |

`rank` |
The number of low-dimension in each mode (Default: 3). |

`algorithm` |
dNTF algorithms. "Frobenius", "KL", "IS", and "Beta" are available (Default: "Frobenius"). |

`init` |
The initialization algorithms. "dNMF", and "Random" are available (Default: "dNMF"). |

`Beta` |
The parameter of Beta-divergence. |

`thr` |
When error change rate is lower than thr1, the iteration is terminated (Default: 1E-10). |

`num.iter` |
The number of interation step (Default: 100). |

`viz` |
If viz == TRUE, internal reconstructed tensor can be visualized. |

`figdir` |
the directory for saving the figure, when viz == TRUE (Default: NULL). |

`verbose` |
If verbose == TRUE, Error change rate is generated in console windos. |

S : K-order tensor object, which is defined as S4 class of rTensor package. A : A list containing K factor matrices. RecError : The reconstruction error between data tensor and reconstructed tensor from S and A. TrainRecError : The reconstruction error calculated by training set (observed values specified by M). TestRecError : The reconstruction error calculated by test set (missing values specified by M). RelChange : The relative change of the error.

Koki Tsuyuzaki

Andrzej CICHOCKI et. al., (2007). Non-negative Tensor Factorization using
Alpha and Beta Divergence. *IEEE ICASSP 2007*

Anh Huy PHAN et. al., (2008). Multi-way Nonnegative Tensor Factorization
Using Fast Hierarchical Alternating Least Squares Algorithm (HALS). *NOLTA2008*

Andrzej CICHOCKI et. al., (2008). Fast Local Algorithms for Large Scale
Nonnegative Matrix and Tensor Factorizations.
*IEICE Transactions on Fundamentals of Electronics, Communications
and Computer Sciences*

`plotTensor3D`

```
tensordata <- toyModel(model = "dNTF")
out <- dNTF(tensordata, rank=3, num.iter=2)
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.