djNMF | R Documentation |
This function is the discretized version of nnTensor::jNMF. The input data objects are assumed to be a list containing multiple non-negative matrices (X_1, X_2, ..., X_K), and decomposed to multiple matrix products ((W + V_1) H_1', (W + V_2) H_2', ..., (W + V_K) H_K'), where W is common across all the data matrices but each V_k or H_k (k=1..K) is specific in each X_k. Unlike regular jNMF, in djNMF, W, V_k, and H_k are estimated by adding binary regularization so that the values are 0 or 1 as much as possible. Likewise, W, V_k, and H_k are estimated by adding ternary regularization so that the values are 0, 1, or 2 as much as possible.
djNMF(X, M=NULL, pseudocount=.Machine$double.eps,
initW=NULL, initV=NULL, initH=NULL,
fixW=FALSE, fixV=FALSE, fixH=FALSE,
Bin_W=1e-10, Bin_V=rep(1e-10, length=length(X)), Bin_H=rep(1e-10, length=length(X)),
Ter_W=1e-10, Ter_V=rep(1e-10, length=length(X)), Ter_H=rep(1e-10, length=length(X)),
L1_W=1e-10, L1_V=rep(1e-10, length=length(X)), L1_H=rep(1e-10, length=length(X)),
L2_W=1e-10, L2_V=rep(1e-10, length=length(X)), L2_H=rep(1e-10, length=length(X)),
J = 3, w=NULL, algorithm = c("Frobenius", "KL", "IS", "PLTF"), p=1,
thr = 1e-10, num.iter = 100,
viz = FALSE, figdir = NULL, verbose = FALSE)
X |
A list containing input matrices (X_k, <N*Mk>, k=1..K). |
M |
A list containing the mask matrices (X_k, <N*Mk>, k=1..K). If the input matrix 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). |
initW |
The initial values of factor matrix W, which has N-rows and J-columns (Default: NULL). |
initV |
A list containing the initial values of multiple factor matrices (V_k, <N*J>, k=1..K, Default: NULL). |
initH |
A list containing the initial values of multiple factor matrices (H_k, <Mk*J>, k=1..K, Default: NULL). |
fixW |
Whether the factor matrix W is updated in each iteration step (Default: FALSE). |
fixV |
Whether the factor matrices Vk are updated in each iteration step (Default: FALSE). |
fixH |
Whether the factor matrices Hk are updated in each iteration step (Default: FALSE). |
Bin_W |
Paramter for binary (0,1) regularitation (Default: 1e-10). |
Bin_V |
A K-length vector containing the paramters for binary (0,1) regularitation (Default: rep(1e-10, length=length(dim(X)))). |
Bin_H |
A K-length vector containing the paramters for binary (0,1) regularitation (Default: rep(1e-10, length=length(dim(X)))). |
Ter_W |
Paramter for terary (0,1,2) regularitation (Default: 1e-10). |
Ter_V |
A K-length vector containing the paramters for terary (0,1,2) regularitation (Default: rep(1e-10, length=length(dim(X)))). |
Ter_H |
A K-length vector containing the paramters for terary (0,1,2) regularitation (Default: rep(1e-10, length=length(dim(X)))). |
L1_W |
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 |
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. |
L1_H |
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_W |
Paramter for L2 regularitation (Default: 1e-10). |
L2_V |
A K-length vector containing the paramters for L2 regularitation (Default: rep(1e-10, length=length(dim(X)))). |
L2_H |
A K-length vector containing the paramters for L2 regularitation (Default: rep(1e-10, length=length(dim(X)))). |
J |
Number of low-dimension (J < N, Mk). |
w |
Weight vector (Default: NULL) |
algorithm |
Divergence between X and X_bar. "Frobenius", "KL", and "IS" are available (Default: "KL"). |
p |
The parameter of Probabilistic Latent Tensor Factorization (p=0: Frobenius, p=1: KL, p=2: IS) |
thr |
When error change rate is lower than thr, the iteration is terminated (Default: 1E-10). |
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 windos. |
W : A matrix which has N-rows and J-columns (J < N, Mk). V : A list which has multiple elements containing N-rows and J-columns (J < N, Mk). H : A list which has multiple elements containing Mk-rows and J-columns matrix (J < N, Mk). RecError : The reconstruction error between data matrix and reconstructed matrix from W and H. 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
Liviu Badea, (2008) Extracting Gene Expression Profiles Common to Colon and Pancreatic Adenocarcinoma using Simultaneous nonnegative matrix factorization. Pacific Symposium on Biocomputing 13:279-290
Shihua Zhang, et al. (2012) Discovery of multi-dimensional modules by integrative analysis of cancer genomic data. Nucleic Acids Research 40(19), 9379-9391
Zi Yang, et al. (2016) A non-negative matrix factorization method for detecting modules in heterogeneous omics multi-modal data, Bioinformatics 32(1), 1-8
Y. Kenan Yilmaz et al., (2010) Probabilistic Latent Tensor Factorization, International Conference on Latent Variable Analysis and Signal Separation 346-353
N. Fujita et al., (2018) Biomarker discovery by integrated joint non-negative matrix factorization and pathway signature analyses, Scientific Report
matdata <- toyModel(model = "dsiNMF_Hard")
out <- djNMF(matdata, J=2, num.iter=2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.