New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding support for poisson regression. #1001
Conversation
This seems good except that getUpdate is not safe. In particular, a very large learning rate/importance weight will result in the update going crazy. Have you considered designing a safe update along the lines of this paper: http://arxiv.org/abs/1011.1576 ? This has been a clear win experimentally. |
Table 1 does list a closed form solution for Poisson. I'll try to work it out. In the mean time, it does work with --normalized and --bfgs. |
Nikos says he has it worked out. |
Hi folks, Yes the paper does not list Poisson regression but it can be derived by solving the ODE. Then you have to translate between paper and VW which I believe can be summarized in the following changes:
With these in mind and some help from alpha
I believe I have done this carefully enough but I have not tested it. Sharat can you verify that this update is at least on par with yours? |
Sharat have you had a chance to look at Nikos's update? |
Looking at it now. |
You need to use # Test 133: and not # Train 133: |
Nikos, The expression in notation used in the original paper (http://bit.ly/1Us0oVe) vs. your derivation (http://bit.ly/25ZG6Gp) |
Can you implement today? I want to drop a new version soon. |
safe update changes incorporated along fixing with @eisber's comments. The windows build seems to be broken (also on master) Windows build failing with unrelated error |
My PR has fixes for this… essentially replace the expected with the actual string in TestArguments.cs |
Coverage increased (+0.04%) to 70.158% when pulling 960f2a5e6195838410b84a8a4c4b1cc5f358128a on sharatsc:poisson into 8e0fd1c on JohnLangford:master. |
Coverage increased (+0.04%) to 70.158% when pulling cf57a61ddb45ad980a70acf523d695c425b3ec76 on sharatsc:poisson into 8e0fd1c on JohnLangford:master. |
Windows build has gotten quite flaky. We should consider spinning off cs wrapper as a separate project that consumes the vw nuget? Build time is taken up with cs and cs-tests |
Coverage increased (+0.04%) to 70.158% when pulling 18cf9a720930ce8482fd2efaa927a9a32299c103 on sharatsc:poisson into 8e0fd1c on JohnLangford:master. |
This looks good to go to me. Not sure you should worry about the windows-side tests as @eisber is working on that. |
Coverage increased (+0.04%) to 70.158% when pulling 56418c898105a5a7a587d29e283bc93bca5ef462 on sharatsc:poisson into 8e0fd1c on JohnLangford:master. |
@JohnLangford this is ready to go. Fixed windows errors as well. |
This is merged in, thanks. All, we now have Poisson loss working thanks @eisber there are some minor changes to make the windows test work. -John On Wed, Jun 15, 2016 at 10:33 AM, Sharat Chikkerur <notifications@github.com
|
Hello, |
It should not support labels <0 as the prediction is exp(w*x). The Nikos
|
Ok, then it may have sense to put a label check and a warning in its |
Adding support for Possion regression. Does not support --invariant mode yet. Haven't figured out the closed form for the update. Currently works with --normalized as well as --bfgs
Usage documented in a python notebook:
https://github.com/sharatsc/vowpal_wabbit/blob/c1e95f98038c628d0ff3995fb3d85bf7c35eefa3/python/poisson_regression.ipynb