{"action":"created","issue":{"url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/5851","repository_url":"https://api.github.com/repos/scikit-learn/scikit-learn","labels_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/5851/labels{/name}","comments_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/5851/comments","events_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/5851/events","html_url":"https://github.com/scikit-learn/scikit-learn/issues/5851","id":117222107,"number":5851,"title":"Robust PCA","user":{"login":"amueller","id":449558,"avatar_url":"https://avatars.githubusercontent.com/u/449558?v=3","gravatar_id":"","url":"https://api.github.com/users/amueller","html_url":"https://github.com/amueller","followers_url":"https://api.github.com/users/amueller/followers","following_url":"https://api.github.com/users/amueller/following{/other_user}","gists_url":"https://api.github.com/users/amueller/gists{/gist_id}","starred_url":"https://api.github.com/users/amueller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amueller/subscriptions","organizations_url":"https://api.github.com/users/amueller/orgs","repos_url":"https://api.github.com/users/amueller/repos","events_url":"https://api.github.com/users/amueller/events{/privacy}","received_events_url":"https://api.github.com/users/amueller/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/scikit-learn/scikit-learn/labels/New%20Feature","name":"New Feature","color":"02e10c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":30,"created_at":"2015-11-16T21:27:53Z","updated_at":"2016-05-03T10:41:24Z","closed_at":null,"body":"I think it would be great to add robust PCA.\r\nThe original algorithm is here http://statweb.stanford.edu/~candes/papers/RobustPCA.pdf\r\nThere is an implementation here: https://github.com/dfm/pcp by @dfm\r\n\r\nThis paper using Trimmed Grassmann Average promises better performance: http://files.is.tue.mpg.de/black/papers/RGA2014.pdf\r\n@glennq implemented it here: https://github.com/glennq/tga\r\n\r\nIt is a bit unclear to me at the moment what the benefits of the two approaches are, and how they compare for example for outlier detection.\r\nAlso, I think netflix uses an improved version of the candes algorithm, for which I didn't find a reference yet (need to ping the netflix people)."},"comment":{"url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/comments/216492422","html_url":"https://github.com/scikit-learn/scikit-learn/issues/5851#issuecomment-216492422","issue_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/5851","id":216492422,"user":{"login":"tjof2","id":6626247,"avatar_url":"https://avatars.githubusercontent.com/u/6626247?v=3","gravatar_id":"","url":"https://api.github.com/users/tjof2","html_url":"https://github.com/tjof2","followers_url":"https://api.github.com/users/tjof2/followers","following_url":"https://api.github.com/users/tjof2/following{/other_user}","gists_url":"https://api.github.com/users/tjof2/gists{/gist_id}","starred_url":"https://api.github.com/users/tjof2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tjof2/subscriptions","organizations_url":"https://api.github.com/users/tjof2/orgs","repos_url":"https://api.github.com/users/tjof2/repos","events_url":"https://api.github.com/users/tjof2/events{/privacy}","received_events_url":"https://api.github.com/users/tjof2/received_events","type":"User","site_admin":false},"created_at":"2016-05-03T10:41:24Z","updated_at":"2016-05-03T10:41:24Z","body":"What's the status of this (since I mentioned it [here](https://github.com/hyperspy/hyperspy/issues/972))? My suggestion might be:\r\n\r\n- IALM or ADMM as a \"baseline\" implementation\r\n- Online Robust PCA [see paper here](https://papers.nips.cc/paper/5131-online-robust-pca-via-stochastic-optimization.pdf) as a low-memory alternative"}}