{"action":"created","issue":{"url":"https://api.github.com/repos/apache/spark/issues/10105","labels_url":"https://api.github.com/repos/apache/spark/issues/10105/labels{/name}","comments_url":"https://api.github.com/repos/apache/spark/issues/10105/comments","events_url":"https://api.github.com/repos/apache/spark/issues/10105/events","html_url":"https://github.com/apache/spark/pull/10105","id":119997208,"number":10105,"title":"[SPARK-12098] Cross validator with multi-arm bandit search","user":{"login":"yinxusen","id":2637239,"avatar_url":"https://avatars.githubusercontent.com/u/2637239?v=3","gravatar_id":"","url":"https://api.github.com/users/yinxusen","html_url":"https://github.com/yinxusen","followers_url":"https://api.github.com/users/yinxusen/followers","following_url":"https://api.github.com/users/yinxusen/following{/other_user}","gists_url":"https://api.github.com/users/yinxusen/gists{/gist_id}","starred_url":"https://api.github.com/users/yinxusen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yinxusen/subscriptions","organizations_url":"https://api.github.com/users/yinxusen/orgs","repos_url":"https://api.github.com/users/yinxusen/repos","events_url":"https://api.github.com/users/yinxusen/events{/privacy}","received_events_url":"https://api.github.com/users/yinxusen/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-12-02T17:42:24Z","updated_at":"2015-12-03T02:27:36Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/spark/pulls/10105","html_url":"https://github.com/apache/spark/pull/10105","diff_url":"https://github.com/apache/spark/pull/10105.diff","patch_url":"https://github.com/apache/spark/pull/10105.patch"},"body":"https://issues.apache.org/jira/browse/SPARK-12098\r\n\r\nThe classic cross-validation requires all inner classifiers iterate to a fixed number of iterations, or until convergence states. It is costly especially in the massive data scenario. According to the paper [Non-stochastic Best Arm Identification and Hyperparameter Optimization](http://arxiv.org/pdf/1502.07943v1.pdf), we can see a promising way to reduce the amount of total iterations of cross-validation with multi-armed bandit search.\r\n\r\nThe multi-armed bandit search for cross-validation (bandit search for short) requires warm-start of ml algorithms, and fine-grained control of the inner behavior of the corss validator.\r\n\r\nSince there are bunch of algorithms of bandit search to find the best parameter set, we intent to provide only a few of them in the beginning to reduce the test/perf-test work and make it more stable.\r\n\r\nHere we only provide StaticSearch and ExponentialWeightsSearch (See chapter 3 of the [Regret Analysis of Stochastic and Nonstochastic Multi-armed Bandit Problems](http://arxiv.org/abs/1204.5721)) in the version. More search strategies and perf-test please see https://github.com/yinxusen/spark/tree/bandit."},"comment":{"url":"https://api.github.com/repos/apache/spark/issues/comments/161497171","html_url":"https://github.com/apache/spark/pull/10105#issuecomment-161497171","issue_url":"https://api.github.com/repos/apache/spark/issues/10105","id":161497171,"user":{"login":"yinxusen","id":2637239,"avatar_url":"https://avatars.githubusercontent.com/u/2637239?v=3","gravatar_id":"","url":"https://api.github.com/users/yinxusen","html_url":"https://github.com/yinxusen","followers_url":"https://api.github.com/users/yinxusen/followers","following_url":"https://api.github.com/users/yinxusen/following{/other_user}","gists_url":"https://api.github.com/users/yinxusen/gists{/gist_id}","starred_url":"https://api.github.com/users/yinxusen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yinxusen/subscriptions","organizations_url":"https://api.github.com/users/yinxusen/orgs","repos_url":"https://api.github.com/users/yinxusen/repos","events_url":"https://api.github.com/users/yinxusen/events{/privacy}","received_events_url":"https://api.github.com/users/yinxusen/received_events","type":"User","site_admin":false},"created_at":"2015-12-03T02:27:35Z","updated_at":"2015-12-03T02:27:35Z","body":"The error is caused by my modification in `LogisticRegression`. I add `Controllable` to it without implementing the save/load for new params.\r\n\r\nHowever, this is not the right place to add those functionalities here, I plan to add warm-start to estimators in other JIRA issue. Then go back and fix the error here."}}