Skip to content

Commit 6945d5b

Browse files
committed
Merge pull request scikit-learn#3116 from eickenberg/ridge_wrong_solver_exception
[BUG] Ridge doesn't raise an exception if a non-identified solver is passed
2 parents 9a91431 + a8e3d99 commit 6945d5b

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

sklearn/linear_model/ridge.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ def ridge_regression(X, y, alpha, sample_weight=None, solver='auto',
304304
alpha = np.repeat(alpha, n_targets)
305305

306306
if solver not in ('sparse_cg', 'cholesky', 'svd', 'lsqr'):
307-
ValueError('Solver %s not understood' % solver)
307+
raise ValueError('Solver %s not understood' % solver)
308308

309309
if solver == 'sparse_cg':
310310
coef = _solve_sparse_cg(X, y, alpha, max_iter, tol)

sklearn/linear_model/tests/test_ridge.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -743,3 +743,19 @@ def test_deprecation_warning_dense_cholesky():
743743
for func in [func1, func2, func3]:
744744
assert_warns_message(warning_class, warning_message, func)
745745

746+
747+
def test_raises_value_error_if_solver_not_supported():
748+
"""Tests whether a ValueError is raised if a non-identified solver
749+
is passed to ridge_regression"""
750+
751+
wrong_solver = "This is not a solver (MagritteSolveCV QuantumBitcoin)"
752+
753+
exception = ValueError
754+
message = "Solver %s not understood" % wrong_solver
755+
756+
def func():
757+
X = np.eye(3)
758+
y = np.ones(3)
759+
ridge_regression(X, y, alpha=1., solver=wrong_solver)
760+
761+
assert_raise_message(exception, message, func)

0 commit comments

Comments
 (0)