What I meant was, how is the objective function defined when X is sparse? Raphael
On Sunday, August 28, 2016, Raphael C <drr...@gmail.com> wrote: > Reading the docs for http://scikit-learn.org/stable/modules/generated/ > sklearn.decomposition.NMF.html it says > > The objective function is: > > 0.5 * ||X - WH||_Fro^2 > + alpha * l1_ratio * ||vec(W)||_1 > + alpha * l1_ratio * ||vec(H)||_1 > + 0.5 * alpha * (1 - l1_ratio) * ||W||_Fro^2 > + 0.5 * alpha * (1 - l1_ratio) * ||H||_Fro^2 > > Where: > > ||A||_Fro^2 = \sum_{i,j} A_{ij}^2 (Frobenius norm) > ||vec(A)||_1 = \sum_{i,j} abs(A_{ij}) (Elementwise L1 norm) > > This seems to suggest that it is optimising over all values in X even if X is > sparse. When using NMF for collaborative filtering we need the objective > function to be defined over only the defined elements of X. The remaining > elements should effectively be regarded as missing. > > > What is the true objective function NMF is using? > > > Raphael > >
_______________________________________________ scikit-learn mailing list scikit-learn@python.org https://mail.python.org/mailman/listinfo/scikit-learn