Say I've got a mxn matrix that I'd like to factor into an mxk and a kxn matrix. The factorization doesn't have to be exact; I'd just like to minimize some measure of error. What are your favorite algorithms to do this? What assumptions about the matrix and the error measure do they make? There's one blurb in Wikipedia about some nonnegative matrix factorization algorithms: There are several ways in which the W and H may be found: Lee and Seung's multiplicative update rule [10] has been a popular method due to the simplicity of implementation. Since then, a few other algorithmic approaches have been developed. Some successful algorithms are based on alternating non-negative least squares: in each step of such an algorithm, first H is fixed and W found by a non-negative least squares solver, then W is fixed and H is found analogously. The procedures used to solve for W and H may be the same[22] or different, as some NMF variants regularize one of W and H.[17] Specific approaches include the projected gradient descent methods,[22][23]the active set method,[4][24] and the block principal pivoting method[25] among several others. -- Mike Stay - metaweta@gmail.com http://www.cs.auckland.ac.nz/~mike http://reperiendi.wordpress.com