nmf_update.KL.h | R Documentation |
Multiplicative updates from Lee et al. (2001) for
standard Nonnegative Matrix Factorization models V
\approx W H
, where the distance between the target
matrix and its NMF estimate is measured by the
Kullback-Leibler divergence.
nmf_update.KL.w
and nmf_update.KL.h
compute
the updated basis and coefficient matrices respectively.
They use a C++ implementation which is optimised
for speed and memory usage.
nmf_update.KL.w_R
and nmf_update.KL.h_R
implement the same updates in plain R.
nmf_update.KL.h(v, w, h, nbterms = 0L, ncterms = 0L,
copy = TRUE)
nmf_update.KL.h_R(v, w, h, wh = NULL)
nmf_update.KL.w(v, w, h, nbterms = 0L, ncterms = 0L,
copy = TRUE)
nmf_update.KL.w_R(v, w, h, wh = NULL)
v |
target matrix |
w |
current basis matrix |
h |
current coefficient matrix |
nbterms |
number of fixed basis terms |
ncterms |
number of fixed coefficient terms |
copy |
logical that indicates if the update should
be made on the original matrix directly ( |
wh |
already computed NMF estimate used to compute the denominator term. |
The coefficient matrix (H
) is updated as follows:
H_{kj} \leftarrow H_{kj} \frac{\left( sum_i
\frac{W_{ik} V_{ij}}{(WH)_{ij}} \right)}{ sum_i W_{ik} }.
These updates are used in built-in NMF algorithms
KL
and
brunet
.
The basis matrix (W
) is updated as follows:
W_{ik} \leftarrow W_{ik} \frac{ sum_j [\frac{H_{kj}
A_{ij}}{(WH)_{ij}} ] }{sum_j H_{kj} }
a matrix of the same dimension as the input matrix to
update (i.e. w
or h
). If copy=FALSE
,
the returned matrix uses the same memory as the input
object.
Update definitions by Lee2001.
C++ optimised implementation by Renaud Gaujoux.
Lee DD and Seung H (2001). "Algorithms for non-negative matrix factorization." _Advances in neural information processing systems_. <URL: http://scholar.google.com/scholar?q=intitle:Algorithms+for+non-negative+matrix+factorization>.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.