8000 [MRG+1] Ridgecv normalize (#9302) · CoderPat/scikit-learn@a6753f3 · GitHub
[go: up one dir, main page]

Skip to content

Commit a6753f3

Browse files
agramfortjnothman
authored andcommitted
[MRG+1] Ridgecv normalize (scikit-learn#9302)
* FIX : normalize was not passed to grid search in RidgeCV * update what's new
1 parent a08555a commit a6753f3

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

doc/whats_new.rst

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,10 +471,13 @@ Bug fixes
471471
by :user:`Andre Ambrosio Boechat <boechat107>`, :user:`Utkarsh Upadhyay
472472
<musically-ut>`, and `Joel Nothman`_.
473473

474-
475474
- Add ``data_home`` parameter to
476475
:func:`sklearn.datasets.fetch_kddcup99` by `Loic Esteve`_.
477476

477+
- Fix inconsistent results between :class:`linear_model.RidgeCV`
478+
and :class:`linear_model.Ridge` when using ``normalize=True``
479+
by `Alexandre Gramfort`_.
480+
478481
API changes summary
479482
-------------------
480483

sklearn/linear_model/ridge.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1119,7 +1119,8 @@ def fit(self, X, y, sample_weight=None):
11191119
raise ValueError("cv!=None and store_cv_values=True "
11201120
" are incompatible")
11211121
parameters = {'alpha': self.alphas}
1122-
gs = GridSearchCV(Ridge(fit_intercept=self.fit_intercept),
1122+
gs = GridSearchCV(Ridge(fit_intercept=self.fit_intercept,
1123+
normalize=self.normalize),
11231124
parameters, cv=self.cv, scoring=self.scoring)
11241125
gs.fit(X, y, sample_weight=sample_weight)
11251126
estimator = gs.best_estimator_

sklearn/linear_model/tests/test_ridge.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,16 @@ def _test_ridge_loo(filter_):
383383
return ret
384384

385385

386+
def _test_ridge_cv_normalize(filter_):
387+
ridge_cv = RidgeCV(normalize=True, cv=3)
388+
ridge_cv.fit(filter_(10. * X_diabetes), y_diabetes)
389+
390+
gs = GridSearchCV(Ridge(normalize=True), cv=3,
391+
param_grid={'alpha': ridge_cv.alphas})
392+
gs.fit(filter_(10. * X_diabetes), y_diabetes)
393+
assert_equal(gs.best_estimator_.alpha, ridge_cv.alpha_)
394+
395+
386396
def _test_ridge_cv(filter_):
387397
ridge_cv = RidgeCV()
388398
ridge_cv.fit(filter_(X_diabetes), y_diabetes)
@@ -462,6 +472,7 @@ def check_dense_sparse(test_func):
462472
def test_dense_sparse():
463473
for test_func in (_test_ridge_loo,
464474
_test_ridge_cv,
475+
_test_ridge_cv_normalize,
465476
_test_ridge_diabetes,
466477
_test_multi_ridge_diabetes,
467478
_test_ridge_classifiers,

0 commit comments

Comments
 (0)
0