{"action":"created","issue":{"url":"https://api.github.com/repos/apache/spark/issues/3951","labels_url":"https://api.github.com/repos/apache/spark/issues/3951/labels{/name}","comments_url":"https://api.github.com/repos/apache/spark/issues/3951/comments","events_url":"https://api.github.com/repos/apache/spark/issues/3951/events","html_url":"https://github.com/apache/spark/pull/3951","id":53752822,"number":3951,"title":"[SPARK-5094][MLlib] Add Python API for Gradient Boosted Trees","user":{"login":"kazk1018","id":5048228,"avatar_url":"https://avatars.githubusercontent.com/u/5048228?v=3","gravatar_id":"","url":"https://api.github.com/users/kazk1018","html_url":"https://github.com/kazk1018","followers_url":"https://api.github.com/users/kazk1018/followers","following_url":"https://api.github.com/users/kazk1018/following{/other_user}","gists_url":"https://api.github.com/users/kazk1018/gists{/gist_id}","starred_url":"https://api.github.com/users/kazk1018/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kazk1018/subscriptions","organizations_url":"https://api.github.com/users/kazk1018/orgs","repos_url":"https://api.github.com/users/kazk1018/repos","events_url":"https://api.github.com/users/kazk1018/events{/privacy}","received_events_url":"https://api.github.com/users/kazk1018/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":16,"created_at":"2015-01-08T13:57:56Z","updated_at":"2015-01-14T21:43:35Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/spark/pulls/3951","html_url":"https://github.com/apache/spark/pull/3951","diff_url":"https://github.com/apache/spark/pull/3951.diff","patch_url":"https://github.com/apache/spark/pull/3951.patch"},"body":"This PR is implementing the Gradient Boosted Trees for Python API."},"comment":{"url":"https://api.github.com/repos/apache/spark/issues/comments/69998021","html_url":"https://github.com/apache/spark/pull/3951#issuecomment-69998021","issue_url":"https://api.github.com/repos/apache/spark/issues/3951","id":69998021,"user":{"login":"jkbradley","id":5084283,"avatar_url":"https://avatars.githubusercontent.com/u/5084283?v=3","gravatar_id":"","url":"https://api.github.com/users/jkbradley","html_url":"https://github.com/jkbradley","followers_url":"https://api.github.com/users/jkbradley/followers","following_url":"https://api.github.com/users/jkbradley/following{/other_user}","gists_url":"https://api.github.com/users/jkbradley/gists{/gist_id}","starred_url":"https://api.github.com/users/jkbradley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jkbradley/subscriptions","organizations_url":"https://api.github.com/users/jkbradley/orgs","repos_url":"https://api.github.com/users/jkbradley/repos","events_url":"https://api.github.com/users/jkbradley/events{/privacy}","received_events_url":"https://api.github.com/users/jkbradley/received_events","type":"User","site_admin":false},"created_at":"2015-01-14T21:43:35Z","updated_at":"2015-01-14T21:43:35Z","body":"@kazk1018  Thanks for the PR!  A few high-level items:\r\n* Will it reduce duplicate code to abstract the \"TreeEnsembleModel\" concept, as in Scala?  Forests and boosting produce models which are very similar.  GradientBoostedTreesModel and RandomForestModel could wrap the abstract class.\r\n* Default parameter values: You state default parameter values in the docs for trainClassifier/Regressor, but they are not actually set in the method declarations.  Could you please fix that?\r\n"}}