| Title: | Non-Negative Matrix Factorization for Binary Data | 
| Version: | 0.2.1 | 
| Description: | Factorize binary matrices into rank-k components using the logistic function in the updating process. See e.g. Tomé et al (2015) <doi:10.1007/s11045-013-0240-9> . | 
| License: | MIT + file LICENSE | 
| Encoding: | UTF-8 | 
| Language: | en-GB | 
| RoxygenNote: | 7.2.3 | 
| URL: | https://michalovadek.github.io/nmfbin/ | 
| Suggests: | knitr, rmarkdown, testthat (≥ 3.0.0) | 
| VignetteBuilder: | knitr | 
| Config/testthat/edition: | 3 | 
| NeedsCompilation: | no | 
| Packaged: | 2023-09-20 19:16:47 UTC; uctqova | 
| Author: | Michal Ovadek  | 
| Maintainer: | Michal Ovadek <michal.ovadek@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2023-09-21 13:40:02 UTC | 
Logistic Non-negative Matrix Factorization
Description
This function performs Logistic Non-negative Matrix Factorization (NMF) on a binary matrix.
Usage
nmfbin(
  X,
  k,
  optimizer = "mur",
  init = "nndsvd",
  max_iter = 1000,
  tol = 1e-06,
  learning_rate = 0.001,
  verbose = FALSE,
  loss_fun = "logloss",
  loss_normalize = TRUE,
  epsilon = 1e-10
)
Arguments
X | 
 A binary matrix (m x n) to be factorized.  | 
k | 
 The number of factors (components, topics).  | 
optimizer | 
 Type of updating algorithm.   | 
init | 
 Method for initializing the factorization. By default Nonnegative Double Singular Value Decomposition with average densification.  | 
max_iter | 
 Maximum number of iterations for optimization.  | 
tol | 
 Convergence tolerance. The optimization stops when the change in loss is less than this value.  | 
learning_rate | 
 Learning rate (step size) for the gradient descent optimization.  | 
verbose | 
 Print convergence if   | 
loss_fun | 
 Choice of loss function:   | 
loss_normalize | 
 Normalize loss by matrix dimensions if   | 
epsilon | 
 Constant to avoid log(0).  | 
Value
A list containing:
-  
W: The basis matrix (m x k). The document-topic matrix in topic modelling. -  
H: The coefficient matrix (k x n). Contribution of features to factors (topics). -  
c: The global threshold. A constant. -  
convergence: Divergence (loss) fromXat everyiteruntiltolormax_iteris reached. 
Examples
# Generate a binary matrix
m <- 100
n <- 50
X <- matrix(sample(c(0, 1), m * n, replace = TRUE), m, n)
# Set the number of factors
k <- 4
# Factorize the matrix with default settings
result <- nmfbin(X, k)