nmf {mlpack} | R Documentation |
Non-negative Matrix Factorization
Description
An implementation of non-negative matrix factorization. This can be used to decompose an input dataset into two low-rank non-negative components.
Usage
nmf(
input,
rank,
initial_h = NA,
initial_w = NA,
max_iterations = NA,
min_residue = NA,
seed = NA,
update_rules = NA,
verbose = getOption("mlpack.verbose", FALSE)
)
Arguments
input |
Input dataset to perform NMF on (numeric matrix). |
rank |
Rank of the factorization (integer). |
initial_h |
Initial H matrix (numeric matrix). |
initial_w |
Initial W matrix (numeric matrix). |
max_iterations |
Number of iterations before NMF terminates (0 runs until convergence. Default value "10000" (integer). |
min_residue |
The minimum root mean square residue allowed for each iteration, below which the program terminates. Default value "1e-05" (numeric). |
seed |
Random seed. If 0, 'std::time(NULL)' is used. Default value "0" (integer). |
update_rules |
Update rules for each iteration; ( multdist | multdiv | als ). Default value "multdist" (character). |
verbose |
Display informational messages and the full list of parameters and timers at the end of execution. Default value "getOption("mlpack.verbose", FALSE)" (logical). |
Details
This program performs non-negative matrix factorization on the given dataset, storing the resulting decomposed matrices in the specified files. For an input dataset V, NMF decomposes V into two matrices W and H such that
V = W * H
where all elements in W and H are non-negative. If V is of size (n x m), then W will be of size (n x r) and H will be of size (r x m), where r is the rank of the factorization (specified by the "rank" parameter).
Optionally, the desired update rules for each NMF iteration can be chosen from the following list:
- multdist: multiplicative distance-based update rules (Lee and Seung 1999) - multdiv: multiplicative divergence-based update rules (Lee and Seung 1999) - als: alternating least squares update rules (Paatero and Tapper 1994)
The maximum number of iterations is specified with "max_iterations", and the minimum residue required for algorithm termination is specified with the "min_residue" parameter.
Value
A list with several components:
h |
Matrix to save the calculated H to (numeric matrix). |
w |
Matrix to save the calculated W to (numeric matrix). |
Author(s)
mlpack developers
Examples
# For example, to run NMF on the input matrix "V" using the 'multdist' update
# rules with a rank-10 decomposition and storing the decomposed matrices into
# "W" and "H", the following command could be used:
## Not run:
output <- nmf(input=V, rank=10, update_rules="multdist")
W <- output$w
H <- output$h
## End(Not run)