{"action":"created","issue":{"url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/8960","repository_url":"https://api.github.com/repos/scikit-learn/scikit-learn","labels_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/8960/labels{/name}","comments_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/8960/comments","events_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/8960/events","html_url":"https://github.com/scikit-learn/scikit-learn/pull/8960","id":232427177,"node_id":"MDExOlB1bGxSZXF1ZXN0MTIzMTc1NTcx","number":8960,"title":"[MRG+1] Stacking classifier with pipelines API","user":{"login":"caioaao","id":1395990,"node_id":"MDQ6VXNlcjEzOTU5OTA=","avatar_url":"https://avatars0.githubusercontent.com/u/1395990?v=4","gravatar_id":"","url":"https://api.github.com/users/caioaao","html_url":"https://github.com/caioaao","followers_url":"https://api.github.com/users/caioaao/followers","following_url":"https://api.github.com/users/caioaao/following{/other_user}","gists_url":"https://api.github.com/users/caioaao/gists{/gist_id}","starred_url":"https://api.github.com/users/caioaao/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/caioaao/subscriptions","organizations_url":"https://api.github.com/users/caioaao/orgs","repos_url":"https://api.github.com/users/caioaao/repos","events_url":"https://api.github.com/users/caioaao/events{/privacy}","received_events_url":"https://api.github.com/users/caioaao/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/scikit-learn/scikit-learn/milestones/26","html_url":"https://github.com/scikit-learn/scikit-learn/milestone/26","labels_url":"https://api.github.com/repos/scikit-learn/scikit-learn/milestones/26/labels","id":3421829,"node_id":"MDk6TWlsZXN0b25lMzQyMTgyOQ==","number":26,"title":"0.21","description":"","creator":{"login":"glemaitre","id":7454015,"node_id":"MDQ6VXNlcjc0NTQwMTU=","avatar_url":"https://avatars2.githubusercontent.com/u/7454015?v=4","gravatar_id":"","url":"https://api.github.com/users/glemaitre","html_url":"https://github.com/glemaitre","followers_url":"https://api.github.com/users/glemaitre/followers","following_url":"https://api.github.com/users/glemaitre/following{/other_user}","gists_url":"https://api.github.com/users/glemaitre/gists{/gist_id}","starred_url":"https://api.github.com/users/glemaitre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glemaitre/subscriptions","organizations_url":"https://api.github.com/users/glemaitre/orgs","repos_url":"https://api.github.com/users/glemaitre/repos","events_url":"https://api.github.com/users/glemaitre/events{/privacy}","received_events_url":"https://api.github.com/users/glemaitre/received_events","type":"User","site_admin":false},"open_issues":73,"closed_issues":6,"state":"open","created_at":"2018-06-13T12:48:35Z","updated_at":"2018-07-27T17:29:13Z","due_on":"2019-07-07T07:00:00Z","closed_at":null},"comments":126,"created_at":"2017-05-31T01:22:37Z","updated_at":"2018-07-29T03:56:13Z","closed_at":"2018-07-27T17:29:12Z","author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/8960","html_url":"https://github.com/scikit-learn/scikit-learn/pull/8960","diff_url":"https://github.com/scikit-learn/scikit-learn/pull/8960.diff","patch_url":"https://github.com/scikit-learn/scikit-learn/pull/8960.patch"},"body":"See discussion on #7427 for more info.\r\n\r\nTODO:\r\n- [x] Add support for methods other than `predict_proba`;  \r\n- [x] Improve tests\r\n\r\n### Improvements over #7427 \r\n\r\n- Works with several kinds of estimators (one/multi label classification - input and output -, regressors, etc);\r\n- Less entropy, as it reuses the pipeline API;\r\n- Just tested it in a [kaggle competition](https://www.kaggle.com/c/mercedes-benz-greener-manufacturing/leaderboard) (look for `Caio Oliveira`);\r\n- Support for stacking multiple layers;\r\n- Blending each estimator separately makes it easier to pretrain models, cache/share blending results, etc (see one awesome application for this [here](http://blog.kaggle.com/2015/12/03/dato-winners-interview-1st-place-mad-professors/));\r\n- More flexibility on using transformed data.\r\n\r\n## Possible improvements\r\n\r\n- [x] [Restacking](https://github.com/kaz-Anova/StackNet#restacking-mode) option;\r\n\r\n## Improvements from review:\r\n- [X] Rewrite the docs (maybe tests to?) to stop mixing classification and regression problems;\r\n- [X] Document \"simple usage\";\r\n- [x] Document \"advanced usage\";\r\n- [x]  Write tests for `StackLayer`;\r\n- ~Write examples for interesting use cases, including: efficient hyperparam optimization techniques; blending without CV; pre-training base estimators~.\r\n\r\n## Relevant discussions\r\n\r\n### Why to use `StackingTransformer` instead of implementing classes\r\n\r\nSummary: https://github.com/scikit-learn/scikit-learn/pull/8960#issuecomment-318902050\r\n\r\nOther discussions:\r\n\r\n- https://github.com/scikit-learn/scikit-learn/pull/7427#issuecomment-284159871\r\n- https://github.com/scikit-learn/scikit-learn/pull/8960#issuecomment-306703951\r\n- https://github.com/scikit-learn/scikit-learn/pull/8960#issuecomment-319777250\r\n\r\n### Is having more than two layers worth it?\r\n\r\n- https://github.com/scikit-learn/scikit-learn/pull/8960#issuecomment-305794729;\r\n\r\n### Factory methods vs Class inheritance\r\n\r\n- https://github.com/scikit-learn/scikit-learn/pull/8960#issuecomment-331242618"},"comment":{"url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/comments/408650142","html_url":"https://github.com/scikit-learn/scikit-learn/pull/8960#issuecomment-408650142","issue_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/8960","id":408650142,"node_id":"MDEyOklzc3VlQ29tbWVudDQwODY1MDE0Mg==","user":{"login":"jnothman","id":78827,"node_id":"MDQ6VXNlcjc4ODI3","avatar_url":"https://avatars2.githubusercontent.com/u/78827?v=4","gravatar_id":"","url":"https://api.github.com/users/jnothman","html_url":"https://github.com/jnothman","followers_url":"https://api.github.com/users/jnothman/followers","following_url":"https://api.github.com/users/jnothman/following{/other_user}","gists_url":"https://api.github.com/users/jnothman/gists{/gist_id}","starred_url":"https://api.github.com/users/jnothman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnothman/subscriptions","organizations_url":"https://api.github.com/users/jnothman/orgs","repos_url":"https://api.github.com/users/jnothman/repos","events_url":"https://api.github.com/users/jnothman/events{/privacy}","received_events_url":"https://api.github.com/users/jnothman/received_events","type":"User","site_admin":false},"created_at":"2018-07-29T03:56:13Z","updated_at":"2018-07-29T03:56:13Z","author_association":"MEMBER","body":"Sigh. Thanks to you. I still think we need to work out how to resolve this.\nIt seems a silly thing to get stuck on.\n\nOn 28 July 2018 at 03:29, Caio Oliveira <notifications@github.com> wrote:\n\n> Closed #8960 <https://github.com/scikit-learn/scikit-learn/pull/8960>.\n>\n> —\n> You are receiving this because you were mentioned.\n> Reply to this email directly, view it on GitHub\n> <https://github.com/scikit-learn/scikit-learn/pull/8960#event-1757768862>,\n> or mute the thread\n> <https://github.com/notifications/unsubscribe-auth/AAEz6_l4J-VFsViRv69Z5JbRUrPwA4vyks5uK03rgaJpZM4NrCxA>\n> .\n>\n"}}
{"actor":{"display_login":"jnothman"}}