skglm.solvers.GramCD#

class skglm.solvers.GramCD(max_iter=100, use_acc=True, greedy_cd=True, tol=0.0001, fit_intercept=True, warm_start=False, verbose=0)[source]#

Coordinate descent solver keeping the gradients up-to-date with Gram updates.

This solver should be used when n_features < n_samples, and computes the (n_features, n_features) Gram matrix which comes with an overhead. It is only suited to Quadratic datafits.

It minimizes:

`1 / (2 xx n_"samples") ||y - Xw||^2 + "penalty"(w)`

which can be rewritten as:

`1 / (2 xx n_"samples") w^T Q w - 1 / n_"samples" q^T w + "penalty"(w)`

where:

`Q = X^T X " (gram matrix), and " q = X^T y`
Attributes:
max_iterint, default 100

Maximum number of iterations.

w_initarray, shape (n_features,), default None

Initial value of coefficients. If set to None, a zero vector is used instead.

use_accbool, default True

Extrapolate the iterates based on the past 5 iterates if set to True.

greedy_cdbool, default True

Use a greedy strategy to select features to update in coordinate descent epochs if set to True. A cyclic strategy is used otherwise.

tolfloat, default 1e-4

Tolerance for convergence.

verbosebool, default False

Amount of verbosity. 0/False is silent.

__init__(max_iter=100, use_acc=True, greedy_cd=True, tol=0.0001, fit_intercept=True, warm_start=False, verbose=0)[source]#

Methods

__init__([max_iter, use_acc, greedy_cd, ...])

solve(X, y, datafit, penalty[, w_init, Xw_init])

Solve an optimization problem.