There is some literature on this although Nonnegative Cholesky would also be a good name.
Paper by Da Kuang Chris Ding Haesun Park http://www.cc.gatech.edu/~dkuang3/pub/sdm0125.pdf A matlab implementation https://github.com/andybaoxv/symnmf A talk by Prof. Park with symnmf featured toward the end youtube link from mmds <https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=6&cad=rja&uact=8&ved=0CEQQtwIwBQ&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DBnS625hLJNU&ei=O3NKVbb-CMGzggS0yYCgDQ&usg=AFQjCNHMtU6hv6bAIZYigg6Cz5yjcM7PYg&sig2=XI43mEtkCN7j46bMgCvhFA> We should probably call these methods Low Rank Approximation rather than Matrix Factorization because, as Stefan says, there need not be an exact solution to A=WH. On Wednesday, May 6, 2015 at 2:54:15 PM UTC-4, Tim Holy wrote: > > What you're asking might be called "nonnegative Cholesky factorization." > From > a brief search, there seems to be a dearth of literature on that subject. > You > could be the first! > > --Tim > > On Wednesday, May 06, 2015 09:59:37 AM Lytu wrote: > > NMF.jl package can factorize a matrix 3x3 and give two matrix (a 3x2 > matrix > > H and a 2x3 matrix W), W is the transpose of a matrix H? > > A = H * W > > E.g: > > import NMF > > A=[5.0 3.0 6.0;3.0 9.0 12.0;6.0 12.0 17.0] > > H, W= NMF.randinit(A, 2) > > > > this code give me 2 matrix H and W > > > > I know that NMF.randinit() gives two matrix H(3x2) and W(2x3) but W is > not > > the transpose of a matrix H. > > > > I would like to know there is a function in NMF package that can give > this > > such result: > > A = H * W with W=H' > > Thank you > >
