{"action":"created","comment":{"url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/comments/280975306","pull_request_review_id":233729203,"id":280975306,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI4MDk3NTMwNg==","diff_hunk":"@@ -0,0 +1,540 @@\n+\"\"\"Stacking classifier and regressor.\"\"\"\n+\n+# Authors: Guillaume Lemaitre <g.lemaitre58@gmail.com>\n+# License: BSD 3 clause\n+\n+from abc import ABCMeta, abstractmethod\n+from copy import deepcopy\n+\n+import numpy as np\n+\n+from ..base import clone\n+from ..base import ClassifierMixin, RegressorMixin, TransformerMixin\n+from ..base import is_classifier, is_regressor\n+from ..base import MetaEstimatorMixin\n+\n+from .base import _parallel_fit_estimator\n+\n+from sklearn.externals.joblib import Parallel, delayed\n+\n+from sklearn.linear_model import LogisticRegression\n+from sklearn.linear_model import LinearRegression\n+\n+from ..model_selection import cross_val_predict\n+from ..model_selection import check_cv\n+\n+from ..utils import check_random_state\n+from ..utils.metaestimators import _BaseComposition\n+from ..utils.metaestimators import if_delegate_has_method\n+from ..utils.validation import has_fit_parameter\n+from ..utils.validation import check_is_fitted\n+\n+\n+class _BaseStacking(_BaseComposition, MetaEstimatorMixin, TransformerMixin,\n+                    metaclass=ABCMeta):\n+    \"\"\"Base class for stacking method.\n+\n+    Warning: This class should not be used directly. Use derived classes\n+    instead.\n+    \"\"\"\n+    _required_parameters = ['estimators']\n+\n+    @abstractmethod\n+    def __init__(self, estimators, final_estimator=None, cv=None,\n+                 method_estimators='auto', pass_through=False, n_jobs=1,\n+                 random_state=None, verbose=0):\n+        self.estimators = estimators\n+        self.final_estimator = final_estimator\n+        self.cv = cv\n+        self.method_estimators = method_estimators\n+        self.pass_through = pass_through\n+        self.n_jobs = n_jobs\n+        self.random_state = random_state\n+        self.verbose = verbose\n+\n+    def _validate_final_estimator(self, default=None):\n+        if self.final_estimator is not None:\n+            self.final_estimator_ = clone(self.final_estimator)\n+        else:\n+            self.final_estimator_ = clone(default)\n+\n+    @property\n+    def named_estimators(self):\n+        return dict(self.estimators)\n+\n+    @staticmethod\n+    def _method_name(name, estimator, method):\n+        if estimator is None:\n+            return None\n+        if method == 'auto':\n+            if getattr(estimator, 'predict_proba', None):\n+                return 'predict_proba'\n+            elif getattr(estimator, 'decision_function', None):\n+                return 'decision_function'\n+            else:\n+                return 'predict'\n+        else:\n+            if not hasattr(estimator, method):\n+                raise ValueError('Underlying estimator {} does not implement '\n+                                 'the method {}.'.format(name, method))\n+            return method\n+\n+    def _concatenate_predictions(self, X, y_pred):\n+        if self.pass_through:\n+            return np.concatenate([X] + [pred.reshape(-1, 1) if pred.ndim == 1\n+                                         else pred for pred in y_pred], axis=1)\n+        else:\n+            return np.concatenate([pred.reshape(-1, 1) if pred.ndim == 1\n+                                   else pred for pred in y_pred], axis=1)\n+\n+    def set_params(self, **params):\n+        \"\"\" Setting the parameters for the stacking estimator.\n+\n+        Valid parameter keys can be listed with get_params().\n+\n+        Parameters\n+        ----------\n+        params : keyword arguments\n+            Specific parameters using e.g. set_params(parameter_name=new_value)\n+            In addition, to setting the parameters of the ``VotingClassifier``,\n+            the individual classifiers of the ``VotingClassifier`` can also be\n+            set or replaced by setting them to None.\n+\n+        Examples\n+        --------\n+        # In this example, the RandomForestClassifier is removed\n+        clf1 = LogisticRegression()\n+        clf2 = RandomForestClassifier()\n+        eclf = StackingClassifier(estimators=[('lr', clf1), ('rf', clf2)]\n+        eclf.set_params(rf=None)\n+\n+        \"\"\"\n+        super()._set_params('estimators', **params)\n+        return self\n+\n+    def get_params(self, deep=True):\n+        \"\"\" Get the parameters of the stacking estimator.\n+\n+        Parameters\n+        ----------\n+        deep: bool\n+            Setting it to True gets the various classifiers and the parameters\n+            of the classifiers as well.\n+        \"\"\"\n+        return super()._get_params('estimators', deep=deep)\n+\n+    def fit(self, X, y, sample_weight=None):\n+        \"\"\" Fit the estimators.\n+\n+        Parameters\n+        ----------\n+        X : {array-like, sparse matrix}, shape (n_samples, n_features)\n+            Training vectors, where n_samples is the number of samples and\n+            n_features is the number of features.\n+\n+        y : array-like, shape (n_samples,)\n+            Target values.\n+\n+        sample_weight : array-like, shape (n_samples,) or None\n+            Sample weights. If None, then samples are equally weighted.\n+            Note that this is supported only if all underlying estimators\n+            support sample weights.\n+\n+        Returns\n+        -------\n+        self : object\n+        \"\"\"\n+\n+        self._validate_meta_estimator()\n+\n+        if self.estimators is None or len(self.estimators) == 0:\n+            raise AttributeError('Invalid `estimators` attribute, '\n+                                 '`estimators` should be a list of '\n+                                 '(string, estimator) tuples')\n+\n+        if sample_weight is not None:\n+            for name, est in self.estimators:\n+                if (est is not None and\n+                        not has_fit_parameter(est, 'sample_weight')):\n+                    raise ValueError('Underlying estimator \\'%s\\' does not'","path":"sklearn/ensemble/_stacking.py","position":null,"original_position":159,"commit_id":"7f6597df31ea64c5f9fa8c38836a927ebfb017de","original_commit_id":"5ab71681a807706f1f7991c12cafec8ea2550409","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},"body":"I don't think we are using has_fit_parameter for this purpose... At least not if I was watching. It won't work for Pipeline or other uses of `**fit_params`.\r\nIt can be used to check for sample_weight support if that will lead to a fast case, but not if it will lead to an error. ","created_at":"2019-05-04T09:21:49Z","updated_at":"2019-05-04T09:21:49Z","html_url":"https://github.com/scikit-learn/scikit-learn/pull/11047#discussion_r280975306","pull_request_url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/11047","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/comments/280975306"},"html":{"href":"https://github.com/scikit-learn/scikit-learn/pull/11047#discussion_r280975306"},"pull_request":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/11047"}},"in_reply_to_id":264113793},"pull_request":{"url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/11047","id":185205382,"node_id":"MDExOlB1bGxSZXF1ZXN0MTg1MjA1Mzgy","html_url":"https://github.com/scikit-learn/scikit-learn/pull/11047","diff_url":"https://github.com/scikit-learn/scikit-learn/pull/11047.diff","patch_url":"https://github.com/scikit-learn/scikit-learn/pull/11047.patch","issue_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/11047","number":11047,"state":"open","locked":false,"title":"[MRG] FEA: Stacking estimator for classification and regression","user":{"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},"body":"<!--\r\nThanks for contributing a pull request! Please ensure you have taken a look at\r\nthe contribution guidelines: https://github.com/scikit-learn/scikit-learn/blob/master/CONTRIBUTING.md#pull-request-checklist\r\n-->\r\n\r\n#### Reference Issues/PRs\r\n<!--\r\nExample: Fixes #1234. See also #3456.\r\nPlease use keywords (e.g., Fixes) to create link to the issues or pull requests\r\nyou resolved, so that they will automatically be closed when your pull request\r\nis merged. See https://github.com/blog/1506-closing-issues-via-pull-requests\r\n-->\r\n\r\ncloses #4816\r\ncloses #8960 \r\ncloses #7427\r\ncloses #6674\r\n\r\n\r\n#### What does this implement/fix? Explain your changes.\r\n\r\n\r\n#### Any other comments?\r\n\r\n\r\n<!--\r\nPlease be aware that we are a loose team of volunteers so patience is\r\nnecessary; assistance handling other issues is very welcome. We value\r\nall user contributions, no matter how minor they are. If we are slow to\r\nreview, either the pull request needs some benchmarking, tinkering,\r\nconvincing, etc. or more likely the reviewers are simply busy. In either\r\ncase, we ask for your understanding during the review process.\r\nFor more information, see our FAQ on this topic:\r\nhttp://scikit-learn.org/dev/faq.html#why-is-my-pull-request-not-getting-any-attention.\r\n\r\nThanks for contributing!\r\n-->\r\n","created_at":"2018-05-01T15:38:25Z","updated_at":"2019-05-04T09:21:49Z","closed_at":null,"merged_at":null,"merge_commit_sha":"870cb3efe16210e9c791a3a7e703275a510189a9","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/11047/commits","review_comments_url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/11047/comments","review_comment_url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/comments{/number}","comments_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/11047/comments","statuses_url":"https://api.github.com/repos/scikit-learn/scikit-learn/statuses/7f6597df31ea64c5f9fa8c38836a927ebfb017de","head":{"label":"glemaitre:is/4816","ref":"is/4816","sha":"7f6597df31ea64c5f9fa8c38836a927ebfb017de","user":{"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},"repo":{"id":49886894,"node_id":"MDEwOlJlcG9zaXRvcnk0OTg4Njg5NA==","name":"scikit-learn","full_name":"glemaitre/scikit-learn","private":false,"owner":{"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},"html_url":"https://github.com/glemaitre/scikit-learn","description":"scikit-learn: machine learning in Python","fork":true,"url":"https://api.github.com/repos/glemaitre/scikit-learn","forks_url":"https://api.github.com/repos/glemaitre/scikit-learn/forks","keys_url":"https://api.github.com/repos/glemaitre/scikit-learn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/glemaitre/scikit-learn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/glemaitre/scikit-learn/teams","hooks_url":"https://api.github.com/repos/glemaitre/scikit-learn/hooks","issue_events_url":"https://api.github.com/repos/glemaitre/scikit-learn/issues/events{/number}","events_url":"https://api.github.com/repos/glemaitre/scikit-learn/events","assignees_url":"https://api.github.com/repos/glemaitre/scikit-learn/assignees{/user}","branches_url":"https://api.github.com/repos/glemaitre/scikit-learn/branches{/branch}","tags_url":"https://api.github.com/repos/glemaitre/scikit-learn/tags","blobs_url":"https://api.github.com/repos/glemaitre/scikit-learn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/glemaitre/scikit-learn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/glemaitre/scikit-learn/git/refs{/sha}","trees_url":"https://api.github.com/repos/glemaitre/scikit-learn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/glemaitre/scikit-learn/statuses/{sha}","languages_url":"https://api.github.com/repos/glemaitre/scikit-learn/languages","stargazers_url":"https://api.github.com/repos/glemaitre/scikit-learn/stargazers","contributors_url":"https://api.github.com/repos/glemaitre/scikit-learn/contributors","subscribers_url":"https://api.github.com/repos/glemaitre/scikit-learn/subscribers","subscription_url":"https://api.github.com/repos/glemaitre/scikit-learn/subscription","commits_url":"https://api.github.com/repos/glemaitre/scikit-learn/commits{/sha}","git_commits_url":"https://api.github.com/repos/glemaitre/scikit-learn/git/commits{/sha}","comments_url":"https://api.github.com/repos/glemaitre/scikit-learn/comments{/number}","issue_comment_url":"https://api.github.com/repos/glemaitre/scikit-learn/issues/comments{/number}","contents_url":"https://api.github.com/repos/glemaitre/scikit-learn/contents/{+path}","compare_url":"https://api.github.com/repos/glemaitre/scikit-learn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/glemaitre/scikit-learn/merges","archive_url":"https://api.github.com/repos/glemaitre/scikit-learn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/glemaitre/scikit-learn/downloads","issues_url":"https://api.github.com/repos/glemaitre/scikit-learn/issues{/number}","pulls_url":"https://api.github.com/repos/glemaitre/scikit-learn/pulls{/number}","milestones_url":"https://api.github.com/repos/glemaitre/scikit-learn/milestones{/number}","notifications_url":"https://api.github.com/repos/glemaitre/scikit-learn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/glemaitre/scikit-learn/labels{/name}","releases_url":"https://api.github.com/repos/glemaitre/scikit-learn/releases{/id}","deployments_url":"https://api.github.com/repos/glemaitre/scikit-learn/deployments","created_at":"2016-01-18T15:50:08Z","updated_at":"2019-04-25T13:05:59Z","pushed_at":"2019-05-03T22:59:58Z","git_url":"git://github.com/glemaitre/scikit-learn.git","ssh_url":"git@github.com:glemaitre/scikit-learn.git","clone_url":"https://github.com/glemaitre/scikit-learn.git","svn_url":"https://github.com/glemaitre/scikit-learn","homepage":"http://scikit-learn.org","size":102418,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"scikit-learn:master","ref":"master","sha":"068bcae2f53b28ab446097d0df8a7d67da91453e","user":{"login":"scikit-learn","id":365630,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM2NTYzMA==","avatar_url":"https://avatars2.githubusercontent.com/u/365630?v=4","gravatar_id":"","url":"https://api.github.com/users/scikit-learn","html_url":"https://github.com/scikit-learn","followers_url":"https://api.github.com/users/scikit-learn/followers","following_url":"https://api.github.com/users/scikit-learn/following{/other_user}","gists_url":"https://api.github.com/users/scikit-learn/gists{/gist_id}","starred_url":"https://api.github.com/users/scikit-learn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scikit-learn/subscriptions","organizations_url":"https://api.github.com/users/scikit-learn/orgs","repos_url":"https://api.github.com/users/scikit-learn/repos","events_url":"https://api.github.com/users/scikit-learn/events{/privacy}","received_events_url":"https://api.github.com/users/scikit-learn/received_events","type":"Organization","site_admin":false},"repo":{"id":843222,"node_id":"MDEwOlJlcG9zaXRvcnk4NDMyMjI=","name":"scikit-learn","full_name":"scikit-learn/scikit-learn","private":false,"owner":{"login":"scikit-learn","id":365630,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM2NTYzMA==","avatar_url":"https://avatars2.githubusercontent.com/u/365630?v=4","gravatar_id":"","url":"https://api.github.com/users/scikit-learn","html_url":"https://github.com/scikit-learn","followers_url":"https://api.github.com/users/scikit-learn/followers","following_url":"https://api.github.com/users/scikit-learn/following{/other_user}","gists_url":"https://api.github.com/users/scikit-learn/gists{/gist_id}","starred_url":"https://api.github.com/users/scikit-learn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scikit-learn/subscriptions","organizations_url":"https://api.github.com/users/scikit-learn/orgs","repos_url":"https://api.github.com/users/scikit-learn/repos","events_url":"https://api.github.com/users/scikit-learn/events{/privacy}","received_events_url":"https://api.github.com/users/scikit-learn/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/scikit-learn/scikit-learn","description":"scikit-learn: machine learning in Python","fork":false,"url":"https://api.github.com/repos/scikit-learn/scikit-learn","forks_url":"https://api.github.com/repos/scikit-learn/scikit-learn/forks","keys_url":"https://api.github.com/repos/scikit-learn/scikit-learn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/scikit-learn/scikit-learn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/scikit-learn/scikit-learn/teams","hooks_url":"https://api.github.com/repos/scikit-learn/scikit-learn/hooks","issue_events_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/events{/number}","events_url":"https://api.github.com/repos/scikit-learn/scikit-learn/events","assignees_url":"https://api.github.com/repos/scikit-learn/scikit-learn/assignees{/user}","branches_url":"https://api.github.com/repos/scikit-learn/scikit-learn/branches{/branch}","tags_url":"https://api.github.com/repos/scikit-learn/scikit-learn/tags","blobs_url":"https://api.github.com/repos/scikit-learn/scikit-learn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/scikit-learn/scikit-learn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/scikit-learn/scikit-learn/git/refs{/sha}","trees_url":"https://api.github.com/repos/scikit-learn/scikit-learn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/scikit-learn/scikit-learn/statuses/{sha}","languages_url":"https://api.github.com/repos/scikit-learn/scikit-learn/languages","stargazers_url":"https://api.github.com/repos/scikit-learn/scikit-learn/stargazers","contributors_url":"https://api.github.com/repos/scikit-learn/scikit-learn/contributors","subscribers_url":"https://api.github.com/repos/scikit-learn/scikit-learn/subscribers","subscription_url":"https://api.github.com/repos/scikit-learn/scikit-learn/subscription","commits_url":"https://api.github.com/repos/scikit-learn/scikit-learn/commits{/sha}","git_commits_url":"https://api.github.com/repos/scikit-learn/scikit-learn/git/commits{/sha}","comments_url":"https://api.github.com/repos/scikit-learn/scikit-learn/comments{/number}","issue_comment_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/comments{/number}","contents_url":"https://api.github.com/repos/scikit-learn/scikit-learn/contents/{+path}","compare_url":"https://api.github.com/repos/scikit-learn/scikit-learn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/scikit-learn/scikit-learn/merges","archive_url":"https://api.github.com/repos/scikit-learn/scikit-learn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/scikit-learn/scikit-learn/downloads","issues_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues{/number}","pulls_url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls{/number}","milestones_url":"https://api.github.com/repos/scikit-learn/scikit-learn/milestones{/number}","notifications_url":"https://api.github.com/repos/scikit-learn/scikit-learn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/scikit-learn/scikit-learn/labels{/name}","releases_url":"https://api.github.com/repos/scikit-learn/scikit-learn/releases{/id}","deployments_url":"https://api.github.com/repos/scikit-learn/scikit-learn/deployments","created_at":"2010-08-17T09:43:38Z","updated_at":"2019-05-04T09:04:08Z","pushed_at":"2019-05-04T08:58:46Z","git_url":"git://github.com/scikit-learn/scikit-learn.git","ssh_url":"git@github.com:scikit-learn/scikit-learn.git","clone_url":"https://github.com/scikit-learn/scikit-learn.git","svn_url":"https://github.com/scikit-learn/scikit-learn","homepage":"http://scikit-learn.org","size":102361,"stargazers_count":34858,"watchers_count":34858,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":17047,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1925,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":17047,"open_issues":1925,"watchers":34858,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/11047"},"html":{"href":"https://github.com/scikit-learn/scikit-learn/pull/11047"},"issue":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/11047"},"comments":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/11047/comments"},"review_comments":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/11047/comments"},"review_comment":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/11047/commits"},"statuses":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/statuses/7f6597df31ea64c5f9fa8c38836a927ebfb017de"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"jnothman"}}