The main function `nmfbin()`

operates on binary matrices
like so:

```
library(nmfbin)
# Create a binary matrix for demonstration
X <- matrix(sample(c(0, 1), 100, replace = TRUE), ncol = 10)
# Perform Logistic NMF
results <- nmfbin(X, k = 3, optimizer = "mur", init = "nndsvd", loss_fun = "logloss", max_iter = 500)
```

We can retrieve the final loss value before convergence criteria were reached:

We can also easily plot the optimization process at every iteration:

```
plot(results$convergence,
xlab = "Iteration",
ylab = "Negative log-likelihood loss")
```