-
Notifications
You must be signed in to change notification settings - Fork 66
[ML] Pseudo-Huber loss function #1168
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
first pass by myself
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've done a first pass. Basically looks great (and good job on tidying up restoring the loss while you were in the area)! I'd just like to have a more thorough read of the test code before approving, but pretty close.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made a couple of suggestions in the tests. I think the main problem is going to be ensuring that the test data is positive: maybe just add on a largish constant?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a couple of points got missed, but no need to review any more. Good work!
This reverts commit 003801d.
…-loss-function
This PR implements Pseudo-Huber loss function and integrates it into the RegressionRunner. Since it has a parameter, I needed to reimplement the persist and restore functionality in order to be able to save the state of the loss functions (the same functionality is useful for MSLE and multiclass classification). I also did some refactoring of unit tests avoid code duplication.
This PR implements Pseudo-Huber loss function and integrates it into the RegressionRunner. Since it has a parameter, I needed to reimplement the persist and restore functionality in order to be able to save the state of the loss functions (the same functionality is useful for MSLE and multiclass classification). I also did some refactoring of unit tests avoid code duplication.
* [ML] Pseudo-Huber loss function (#1168) This PR implements Pseudo-Huber loss function and integrates it into the RegressionRunner. Since it has a parameter, I needed to reimplement the persist and restore functionality in order to be able to save the state of the loss functions (the same functionality is useful for MSLE and multiclass classification). I also did some refactoring of unit tests avoid code duplication. * Fix test threshold (#1195) The unit test CBoostedTreeTest/testPiecewiseConstant was failing on Linux only. This PR adjusts the test threshold slightly. Co-authored-by: David Roberts <dave.roberts@elastic.co>
* [ML] Pseudo-Huber loss function (#1168) This PR implements Pseudo-Huber loss function and integrates it into the RegressionRunner. Since it has a parameter, I needed to reimplement the persist and restore functionality in order to be able to save the state of the loss functions (the same functionality is useful for MSLE and multiclass classification). I also did some refactoring of unit tests avoid code duplication. * Fix test threshold (#1195) The unit test CBoostedTreeTest/testPiecewiseConstant was failing on Linux only. This PR adjusts the test threshold slightly. Co-authored-by: David Roberts <dave.roberts@elastic.co>
While adding the additional function parameter in #1168, I wired it in the constructor of the MSLE loss function, but not in the computation of the objective. This PR fixes this, it basically substitutes log(1+x) by log(offset+x) in many different places. I mark it as a non-issue since the MSLE loss function was not released yet.
While adding the additional function parameter in elastic#1168, I wired it in the constructor of the MSLE loss function, but not in the computation of the objective. This PR fixes this, it basically substitutes log(1+x) by log(offset+x) in many different places. I mark it as a non-issue since the MSLE loss function was not released yet.
While adding the additional function parameter in elastic#1168, I wired it in the constructor of the MSLE loss function, but not in the computation of the objective. This PR fixes this, it basically substitutes log(1+x) by log(offset+x) in many different places. I mark it as a non-issue since the MSLE loss function was not released yet.
While adding the additional function parameter in #1168, I wired it in the constructor of the MSLE loss function, but not in the computation of the objective. This PR fixes this, it basically substitutes log(1+x) by log(offset+x) in many different places. I mark it as a non-issue since the MSLE loss function was not released yet.
While adding the additional function parameter in #1168, I wired it in the constructor of the MSLE loss function, but not in the computation of the objective. This PR fixes this, it basically substitutes log(1+x) by log(offset+x) in many different places. I mark it as a non-issue since the MSLE loss function was not released yet.
This PR implements Pseudo-Huber loss function and integrates it into the RegressionRunner. Since it has a parameter, I needed to reimplement the persist and restore functionality in order to be able to save the state of the loss functions (the same functionality is useful for MSLE and multiclass classification). I also did some refactoring of unit tests avoid code duplication.
Relates to #973