Skip to content

Commit ecb8a99

Browse files
committed
Ridge now works with tall, sparse matrices and sample weights
1 parent 8c9410d commit ecb8a99

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

sklearn/linear_model/ridge.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,12 @@ def _solve_dense_cholesky(X, y, alpha, sample_weight=None):
9393
isinstance(sample_weight, np.ndarray) or sample_weight != 1.)
9494

9595
if has_sw:
96-
A = safe_sparse_dot(X.T * sample_weight, X, dense_output=True)
97-
Xy = safe_sparse_dot(X.T * sample_weight, y, dense_output=True)
96+
sample_weight = sample_weight * np.ones(n_samples)
97+
sample_weight_matrix = sparse.dia_matrix((sample_weight, 0),
98+
shape=(n_samples, n_samples))
99+
weighted_X = safe_sparse_dot(sample_weight_matrix, X)
100+
A = safe_sparse_dot(weighted_X.T, X, dense_output=True)
101+
Xy = safe_sparse_dot(weighted_X.T, y, dense_output=True)
98102
else:
99103
A = safe_sparse_dot(X.T, X, dense_output=True)
100104
Xy = safe_sparse_dot(X.T, y, dense_output=True)

0 commit comments

Comments
 (0)