Le 13 mars 2012 02:32, Olivier Mangin <[email protected]> a écrit : > Hello, > > Since I am currently using NMF for my robotics research, I have an > implementation of some algorithms from [1]_ that could extend > scikit-learn current implementation. > > More precisely the current implementation covers the Frobenius norm case > (for measuring the reconstruction error), and the sparsity enforcement > method introduced on [2]_. [1]_ describes algorithms that generalize to > all the beta-divergences (Frobenius norm corresponds to beta = 2), and > adaptation of some of these algorithms to L_1 regularization (amongst > other things). > > My implementation covers algorithms for beta-divergence minimization > based on three kind of approaches presented in [1]_: > * gradient descent > * maximization-minimization (that leads to multiplicative updates) > * heuristic update (generalizes to all beta, multiplicative updates > commonly used for NMF with Frobenius (beta = 2) norm, Kullback-Leibler > (beta = 1) and Itakura-Saito (beta = 0) divergences) > > I was planning to integrate my code into a BetaNMF class in > 'sklearn/decomposition/nmf.py' as an alternative to the existing > ProjectedGradientNMF, and to enable access to the various algorithms > through arguments to the fit and transform method (I think default > should be heuristic multiplicative updates). > > Is this duplicated work ? Is it the right way to do it ?
Sounds interesting. I don't think this is duplicated work. Do you have example scripts that shows how it performs on application tasks? AFAIK the Itakura-Saito divergence is useful for audio signal analysis. How does you implementation scale compared to the existing sklearn implementation? What is the maximum number of samples / features / extracted components that it can process in less than 1min on some realistic datasets? Rough numbers no need to be specific. -- Olivier http://twitter.com/ogrisel - http://github.com/ogrisel ------------------------------------------------------------------------------ This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure _______________________________________________ Scikit-learn-general mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
