NMF | R Documentation |
The input data is assumed to be non-negative matrix. NMF decompose the matrix to two low-dimensional factor matices. This function is also used as initialization step of tensor decomposition (see also NTF and NTD).
NMF(X, M=NULL, pseudocount=.Machine$double.eps, initU=NULL, initV=NULL,
fixU=FALSE, fixV=FALSE,
L1_U=1e-10, L1_V=1e-10, L2_U=1e-10, L2_V=1e-10, J = 3,
rank.method=c("all", "ccc", "dispersion", "rss", "evar", "residuals",
"sparseness.basis", "sparseness.coef", "sparseness2.basis",
"sparseness2.coef", "norm.info.gain.basis", "norm.info.gain.coef",
"singular", "volume", "condition"), runtime=30,
algorithm = c("Frobenius", "KL", "IS", "Pearson", "Hellinger", "Neyman",
"Alpha", "Beta", "ALS", "PGD", "HALS", "GCD", "Projected", "NHR", "DTPP",
"Orthogonal", "OrthReg"), Alpha = 1, Beta = 2,
eta = 1e-04, thr1 = 1e-10, thr2 = 1e-10, tol = 1e-04,
num.iter = 100, viz = FALSE, figdir = NULL, verbose = FALSE)
X |
The input matrix which has N-rows and M-columns. |
M |
The mask matrix which has N-rows and M-columns. If the input matrix has missing values, specify the elements as 0 (otherwise 1). |
pseudocount |
The pseudo count to avoid zero division, when the element is zero (Default: Machine Epsilon). |
initU |
The initial values of factor matrix U, which has N-rows and J-columns (Default: NULL). |
initV |
The initial values of factor matrix V, which has M-rows and J-columns (Default: NULL). |
fixU |
Whether the factor matrix U is updated in each iteration step (Default: FALSE). |
fixV |
Whether the factor matrix V is updated in each iteration step (Default: FALSE). |
L1_U |
Paramter for L1 regularitation (Default: 1e-10). This also works as small positive constant to prevent division by zero, so should be set as 0. |
L1_V |
Paramter for L1 regularitation (Default: 1e-10). This also works as small positive constant to prevent division by zero, so should be set as 0. |
L2_U |
Paramter for L2 regularitation (Default: 1e-10). |
L2_V |
Paramter for L2 regularitation (Default: 1e-10). |
J |
The number of low-dimension (J < {N, M}). If a numerical vector is specified (e.g. 2:6), the appropriate rank is estimated. |
rank.method |
The rank estimation method (Default: "all"). Only if the J option is specified as a numerical vector longer than two, this option will be active. |
runtime |
The number of trials to estimate rank (Default: 10). |
algorithm |
NMF algorithms. "Frobenius", "KL", "IS", "Pearson", "Hellinger", "Neyman", "Alpha", "Beta", "ALS", "PGD", "HALS", "GCD", "Projected", "NHR", "DTPP", "Orthogonal", and "OrthReg" are available (Default: "Frobenius"). |
Alpha |
The parameter of Alpha-divergence. |
Beta |
The parameter of Beta-divergence. |
eta |
The stepsize for PGD algorithm (Default: 0.0001). |
thr1 |
When error change rate is lower than thr1, the iteration is terminated (Default: 1E-10). |
thr2 |
If the minus-value is generated, replaced as thr2 (Default: 1E-10). This value is used within the internal function .positive(). |
tol |
The tolerance parameter used in GCD algorithm. |
num.iter |
The number of interation step (Default: 100). |
viz |
If viz == TRUE, internal reconstructed matrix can be visualized. |
figdir |
The directory for saving the figure, when viz == TRUE. |
verbose |
If verbose == TRUE, Error change rate is generated in console window. |
U : A matrix which has N-rows and J-columns (J < {N, M}). V : A matrix which has M-rows and J-columns (J < {N, M}). J : The number of dimension (J < {N, M}). RecError : The reconstruction error between data tensor and reconstructed tensor from U and V. 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. Trial : All the results of the trials to estimate the rank. Runtime : The number of the trials to estimate the rank. RankMethod : The rank estimation method.
Koki Tsuyuzaki
Andrzej CICHOCK, et. al., (2009). Nonnegative Matrix and Tensor Factorizations. John Wiley & Sons, Ltd
Keigo Kimura, (2017). A Study on Efficient Algorithms for Nonnegative Matrix/ Tensor Factorization. Hokkaido University Collection of Scholarly and Academic Papers
if(interactive()){
# Test data
matdata <- toyModel(model = "NMF")
# Simple usage
out <- NMF(matdata, J=5)
# Rank estimation mode (single method)
out2 <- NMF(matdata, J=2:10, rank.method="ccc", runtime=3)
plot(out2)
# Rank estimation mode (all method)
out3 <- NMF(matdata, J=2:10, rank.method="all", runtime=10)
plot(out3)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.