8000 Test primal-dual relationship in Ridge. · mohitsingh1007/scikit-learn@41ae4c9 · GitHub
[go: up one dir, main page]

Skip to content

Commit 41ae4c9

Browse files
committed
Test primal-dual relationship in Ridge.
1 parent cdebc18 commit 41ae4c9

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

sklearn/linear_model/ridge.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ def _solve_dense_cholesky(X, y, alpha):
108108
return coefs
109109

110110

111-
def _solve_dense_cholesky_kernel(K, y, alpha, sample_weight=None):
111+
def _solve_dense_cholesky_kernel(K, y, alpha, sample_weight=1.0):
112112
# dual_coef = inv(X X^t + alpha*Id) y
113113
n_samples = K.shape[0]
114114
n_targets = y.shape[1]

sklearn/linear_model/tests/test_ridge.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
from sklearn.linear_model.ridge import RidgeCV
2222
from sklearn.linear_model.ridge import RidgeClassifier
2323
from sklearn.linear_model.ridge import RidgeClassifierCV
24+
from sklearn.linear_model.ridge import _solve_dense_cholesky
25+
from sklearn.linear_model.ridge import _solve_dense_cholesky_kernel
2426

2527

2628
from sklearn.cross_validation import KFold
@@ -81,6 +83,15 @@ def test_ridge():
8183
assert_greater(ridge.score(X, y), 0.9)
8284

8385

86+
def test_primal_dual_relationship():
87+
y = y_diabetes.reshape(-1, 1)
88+
coef = _solve_dense_cholesky(X_diabetes, y, alpha=[1e-2])
89+
K = np.dot(X_diabetes, X_diabetes.T)
90+
dual_coef = _solve_dense_cholesky_kernel(K, y, alpha=[1e-2])
91+
coef2 = np.dot(X_diabetes.T, dual_coef).T
92+
assert_array_almost_equal(coef, coef2)
93+
94+
8495
def test_ridge_singular():
8596
# test on a singular matrix
8697
rng = np.random.RandomState(0)

0 commit comments

Comments
 (0)
0