# Basic usage

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:

    print(results$convergence[length(results$convergence)])
    #> [1] 0.4438092

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

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