scikit-learn / scikit-learn/scikit-learn

Investigate SAG/SAGA solver

Open
#23,180 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Bug help wanted Moderate module:linear_model
Dominant language
Python
Stars
67.3k
Forks
27.4k
Avg merge
1d 15h
Merged PRs (30d)
58

Description

Description

The newly introduced tight tests for Ridge in #22910 together with the random seed fixture in #22749 revealed some shortcomings of the sag and saga solver, some are already mentioned in #21305:

  1. It shows some random behavior even with fixed random seed.
  2. The tol needs to be set much smaller to receive comparable results with the other solvers of Ridge.
  3. Saga seems more stable on dense data X, and often needs much more iterations on sparse X.
  4. fit_intercept=True seems to converge slower.

Ideally, the cause for both issues can be identified and fixed.

Some links for context

https://github.com/scikit-learn/scikit-learn/issues/23014
https://github.com/scikit-learn/scikit-learn/pull/23017
https://github.com/scikit-learn/scikit-learn/pull/23026
https://github.com/scikit-learn/scikit-learn/pull/23152
#23177
#25198

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the tight Ridge tests from #22910, the random seed fixture from #22749, and the linked discussions and pull requests, including #21305. Identify the causes of SAG/SAGA convergence and iteration differences, then validate any fix against comparable Ridge results on dense and sparse data with and without an intercept.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.