Abstract

Non-negative matrix factorisation.

Much of this code is based on work by Kasper Unn Weihe, Kristian Quirin Hansen, and Peter Kanstrup Larsen. See their report for details.

Synopsis

module mk_nmf: (T: real) -> {
val nmf [m] [n]: (A: [m][n]T.t) -> (k: i64) -> (max_iter: i64) -> (tol: T.t) -> ([m][k]T.t, [k][n]T.t, i64)
val frob_norm [m] [n]: (xss: [m][n]T.t) -> T.t
}

Description

module mk_nmf

NMF with Multiplicative Update Rules and using the Frobenius norm to determine divergence.