{"action":"created","issue":{"url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/4852","labels_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/4852/labels{/name}","comments_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/4852/comments","events_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/4852/events","html_url":"https://github.com/scikit-learn/scikit-learn/pull/4852","id":87378541,"number":4852,"title":"[MRG] refactor NMF and add CD solver","user":{"login":"TomDLT","id":11065596,"avatar_url":"https://avatars.githubusercontent.com/u/11065596?v=3","gravatar_id":"","url":"https://api.github.com/users/TomDLT","html_url":"https://github.com/TomDLT","followers_url":"https://api.github.com/users/TomDLT/followers","following_url":"https://api.github.com/users/TomDLT/following{/other_user}","gists_url":"https://api.github.com/users/TomDLT/gists{/gist_id}","starred_url":"https://api.github.com/users/TomDLT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TomDLT/subscriptions","organizations_url":"https://api.github.com/users/TomDLT/orgs","repos_url":"https://api.github.com/users/TomDLT/repos","events_url":"https://api.github.com/users/TomDLT/events{/privacy}","received_events_url":"https://api.github.com/users/TomDLT/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":34,"created_at":"2015-06-11T15:08:32Z","updated_at":"2015-09-07T14:07:54Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/4852","html_url":"https://github.com/scikit-learn/scikit-learn/pull/4852","diff_url":"https://github.com/scikit-learn/scikit-learn/pull/4852.diff","patch_url":"https://github.com/scikit-learn/scikit-learn/pull/4852.patch"},"body":"This PR is a first part of what is discussed in #4811.\r\nIt includes:\r\n- refactor ProjectedGradientNMF into NMF, with a 'proj-grad' solver\r\n- include random initialization into `_initialize_nmf()`\r\n- add ElasticNet-like regularization (with parameters `alpha` and `l1_ratio`)\r\n- add a solver with Coordinate Descent (from @mblondel) with Cython for critical part\r\n- update some tests and bench_plot_nmf (which looks terrible btw)\r\n\r\nIn some future PR, I will:\r\n- include MM (cf [comment](https://github.com/scikit-learn/scikit-learn/issues/4811#issuecomment-110391396)) in order to include more loss functions (I-divergence and IS-divergence)\r\n- investigate more on initialization of NMF\r\n- ...\r\n\r\nPlease tell me what you think :)"},"comment":{"url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/comments/138307192","html_url":"https://github.com/scikit-learn/scikit-learn/pull/4852#issuecomment-138307192","issue_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/4852","id":138307192,"user":{"login":"TomDLT","id":11065596,"avatar_url":"https://avatars.githubusercontent.com/u/11065596?v=3","gravatar_id":"","url":"https://api.github.com/users/TomDLT","html_url":"https://github.com/TomDLT","followers_url":"https://api.github.com/users/TomDLT/followers","following_url":"https://api.github.com/users/TomDLT/following{/other_user}","gists_url":"https://api.github.com/users/TomDLT/gists{/gist_id}","starred_url":"https://api.github.com/users/TomDLT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TomDLT/subscriptions","organizations_url":"https://api.github.com/users/TomDLT/orgs","repos_url":"https://api.github.com/users/TomDLT/repos","events_url":"https://api.github.com/users/TomDLT/events{/privacy}","received_events_url":"https://api.github.com/users/TomDLT/received_events","type":"User","site_admin":false},"created_at":"2015-09-07T14:07:54Z","updated_at":"2015-09-07T14:07:54Z","body":"Correct"}}