volnmf_estimate provides alternating optimization of volume-regularized factorization of a matrix B using the following objective function:
\(F = ||B*Q - C*R||^2 + w.vol*volume(R)\). Matrix C is required to be non-negative and having either column or row vectors on the simplex.
Matrix R can optionally have non-negativity constraint. Matrix Q can optionally be identity matrix or any unitary.
volnmf_estimate(
B,
C,
R,
Q,
domain = "covariance",
volf = "logdet",
R.majorate = FALSE,
wvol = NULL,
delta = 1e-08,
n.iter = 10000,
err.cut = 1e-08,
vol.iter = 100,
c.iter = 100,
extrapolate = TRUE,
accelerate = TRUE,
acc.C = 4/5,
acc.R = 3/4,
C.constraint = "col",
C.bound = 1,
R.constraint = "pos",
verbose = TRUE,
record = 100,
Canchor = NULL,
Ctrue = NULL,
mutation.run = FALSE
)A numeric matrix. A matrix to factorize (by default NULL). If not given than matrix B is taken to be a square root decomposition of \(P = B*t(B)\).
Numeric matrices. Initial matrices for optimiztion.
Numeric matrices. Initial matrices for optimiztion.
Numeric matrices. Initial matrices for optimiztion.
A character. Optimize unitary rotation matrix Q ("covariance") or keep it as identity matrix (as in standard NMF). By default "covariance".
A character. Function that approximate volume. Can have values of "logdet" or "det" (by default "logdet").
A boolean. Majorate logdet each iteration of volnmf_logdet() (by default FALSE).
A numeric. A weight of volume-regularized term volume(R).
A numeric. Logdet regularization term log(det(R) + delta) (by default 1e-8).
An integer. Number of iterations (by default 1,000).
A numeric. Relative error in determinant between iterations to stop algorithm (by default 1e-8).
An integer. Number of iterations to update volume-regularized matrix R at each alternating step.
An integer. Number of iterations to update simplex matrix C at each alternating step.
A numeric. Do Nesterov extrapolation inside blocks of R and C optimization (by default TRUE).
A numeric. Do acceleration each update after R and C blocks estimated via Nesterov-like extrapolation.
A numeric. Acceleration parameter of matrix C.
A numeric. Acceleration parameter of matrix R.
A character. Constraint either sum of columns ("col") or sum of rows ("row) to be equal to C.bound (By default "col").
A numeric. A simplex constraint on matrix C vectors.
A character. Set up non-negativity ("pos") constraint on elements of R (by default "pos", alternative "no").
A boolean. Print per-iteration information (by default FALSE)
A numeric. Record parameters every 'record' iterations (by default NULL).
A matrix. A matrix of anchor components (unused currently). (default=NULL)
A matrix. Correct matrix C if known. Useful for benchmark.
A boolean. Assess goodness of solution using reflection test if mutation.run=TRUE (applicable only to analysis of mutation patterns). (default=FALSE)
List of objects:
C, R, Q, E Factorization matrices.
iter, err Number of iterations and relative per-iteration error err in matrix C.
info.record a list of objects that record and store state of matrices each record iterations.