-
-
Notifications
You must be signed in to change notification settings - Fork 25.8k
Add IRLS solver for linear models #16634
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
Comments
Benchmarks should additionally be done for 32 bit input, as currently one limitation of LBFGS is that it only supports 64bit (and upcasts 32bit input). |
In addition to the ratio of |
IRLS, in the end, is the very same as (quasi-) Newton convex optimization. So, an outer loop approximates the objective with a 2nd order Taylor series. The inner loop minimizes the Taylor series which is the same as solving least squares. There are then several ways to solve the inner loop's least squares problem:
Depending on the approach, including the L2-penalty and the intercept are tricky parts. Some references:
I'd like to mention, that more recent scipy versions have added some very good trust-region optimizers (2nd order Taylor, but then solve inner loop with trust-region methods), e.g. trust-constr in scipy 1.1.0. |
…4300) Co-authored-by: Christian Lorentzen <lorentzen.ch@googlemail.com> Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org> Co-authored-by: Nicolas Hug <contact@nicolas-hug.com>
The Iteratively reweighted least squares (IRLS) solver, initially proposed in #9405 could be used in several linear models, for instance,
Preliminary benchmarks for TweedieRegression were done in #9405 (comment) and demonstrated that IRLS could be competitive (or faster than other solvers including LBFGS) when n_features ≤ 10-20. More detailed benchmarks with a careful consideration of the stopping criterion would be necessary.
Also see: #16635 #16637
The text was updated successfully, but these errors were encountered: