From 2b1cac6b2bd61869be5466c654eff6b687eda489 Mon Sep 17 00:00:00 2001 From: Alexandre Gramfort Date: Sat, 8 Jul 2017 13:46:25 +0200 Subject: [PATCH 1/2] FIX : normalize was not passed to grid search in RidgeCV --- sklearn/linear_model/ridge.py | 3 ++- sklearn/linear_model/tests/test_ridge.py | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/sklearn/linear_model/ridge.py b/sklearn/linear_model/ridge.py index e0c7b6f188037..caf2f9eed64c2 100644 --- a/sklearn/linear_model/ridge.py +++ b/sklearn/linear_model/ridge.py @@ -1119,7 +1119,8 @@ def fit(self, X, y, sample_weight=None): raise ValueError("cv!=None and store_cv_values=True " " are incompatible") parameters = {'alpha': self.alphas} - gs = GridSearchCV(Ridge(fit_intercept=self.fit_intercept), + gs = GridSearchCV(Ridge(fit_intercept=self.fit_intercept, + normalize=self.normalize), parameters, cv=self.cv, scoring=self.scoring) gs.fit(X, y, sample_weight=sample_weight) estimator = gs.best_estimator_ diff --git a/sklearn/linear_model/tests/test_ridge.py b/sklearn/linear_model/tests/test_ridge.py index 4879e02deff50..ee44da5d56b86 100644 --- a/sklearn/linear_model/tests/test_ridge.py +++ b/sklearn/linear_model/tests/test_ridge.py @@ -383,6 +383,16 @@ def _test_ridge_loo(filter_): return ret +def _test_ridge_cv_normalize(filter_): + ridge_cv = RidgeCV(normalize=True, cv=3) + ridge_cv.fit(filter_(10. * X_diabetes), y_diabetes) + + gs = GridSearchCV(Ridge(normalize=True), cv=3, + param_grid={'alpha': ridge_cv.alphas}) + gs.fit(filter_(10. * X_diabetes), y_diabetes) + assert_equal(gs.best_estimator_.alpha, ridge_cv.alpha_) + + def _test_ridge_cv(filter_): ridge_cv = RidgeCV() ridge_cv.fit(filter_(X_diabetes), y_diabetes) @@ -462,6 +472,7 @@ def check_dense_sparse(test_func): def test_dense_sparse(): for test_func in (_test_ridge_loo, _test_ridge_cv, + _test_ridge_cv_normalize, _test_ridge_diabetes, _test_multi_ridge_diabetes, _test_ridge_classifiers, From 4dafa0503f3f7ef9f8a40c3d08c54294d546d077 Mon Sep 17 00:00:00 2001 From: Alexandre Gramfort Date: Sat, 8 Jul 2017 13:48:22 +0200 Subject: [PATCH 2/2] update what's new --- doc/whats_new.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/doc/whats_new.rst b/doc/whats_new.rst index 0c5608d6b5970..3c87d4174c388 100644 --- a/doc/whats_new.rst +++ b/doc/whats_new.rst @@ -471,10 +471,13 @@ Bug fixes by :user:`Andre Ambrosio Boechat `, :user:`Utkarsh Upadhyay `, and `Joel Nothman`_. - - Add ``data_home`` parameter to :func:`sklearn.datasets.fetch_kddcup99` by `Loic Esteve`_. + - Fix inconsistent results between :class:`linear_model.RidgeCV` + and :class:`linear_model.Ridge` when using ``normalize=True`` + by `Alexandre Gramfort`_. + API changes summary -------------------