Because H*H' is always a positive semi-definite matrix, such a factorization only makes sense if A is positive semi-definite. That's independent of the factors being nonnegative.
On Wednesday, May 6, 2015 at 2:59:39 PM UTC-4, Stefan Karpinski wrote: > > Note that since precise non-negative factorization is generally not > possible and this would constrain the factorization even further, it will > not generally be possible to factorize a matrix like this. Then again, > since the W = H' constraint seems to make the problem convex, it may > actually make the optimization problem of finding non-negative H that > minimizes the norm of the error easier. > > On Wed, May 6, 2015 at 2:54 PM, Tim Holy <[email protected] <javascript:>> > 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 >> >> >
