lightning.regression.SAGARegressor

class lightning.regression.SAGARegressor(eta='auto', alpha=1.0, beta=0.0, loss='smooth_hinge', penalty='l1', max_iter=10, n_inner=1.0, tol=0.001, verbose=0, callback=None, random_state=None)[source]

Estimator for learning linear regressors by SAG.

Solves the following objective:

minimize_w 1 / n_samples * sum_i loss(w^T x_i, y_i)
  • alpha * 0.5 * ||w||^2_2 + beta * penalty(w)
Parameters:

eta : float or {‘auto’, ‘line-search’}, defaults to ‘auto’

step size for the gradient updates. If set to ‘auto’, this will calculate a step size based on the input data. If set to ‘line-search’, it will perform a line-search to find the step size based for the current iteration.

alpha : float

amount of squared L2 regularization

beta : float

amount of regularization for the penalty term

loss : string

loss to use in the objective function. Can be “modified_huber” or “squared”.

penalty : string or Penalty object

penalty term to use in the objective function. Can be “l1” or a custom Penalty object (object defined in lightning/impl/sag_fast.pxd)

max_iter : int

maximum number of outer iterations (also known as epochs).

tol : float

stopping criterion tolerance.

verbose : int

verbosity level. Set positive to print progress information.

callback : callable or None

if given, callback(self) will be called on each outer iteration (epoch).

random_state: int or RandomState :

Pseudo-random number generator state used for random sampling.

Methods

fit(X, y[, sample_weight])
Parameters:
get_params([deep]) Get parameters for this estimator.
n_nonzero([percentage])
predict(X)
score(X, y[, sample_weight]) Returns the coefficient of determination R^2 of the prediction.
set_params(**params) Set the parameters of this estimator.
__init__(eta='auto', alpha=1.0, beta=0.0, loss='smooth_hinge', penalty='l1', max_iter=10, n_inner=1.0, tol=0.001, verbose=0, callback=None, random_state=None)[source]
fit(X, y, sample_weight=None)
Parameters:

X : numpy array, sparse matrix or RowDataset of size (n_samples, n_features)

y : numpy array of size (n_samples,)

sample_weight : numpy array of size (n_samples,), optional

Returns:

self :

get_params(deep=True)

Get parameters for this estimator.

Parameters:

deep: boolean, optional :

If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns:

params : mapping of string to any

Parameter names mapped to their values.

score(X, y, sample_weight=None)

Returns the coefficient of determination R^2 of the prediction.

The coefficient R^2 is defined as (1 - u/v), where u is the regression sum of squares ((y_true - y_pred) ** 2).sum() and v is the residual sum of squares ((y_true - y_true.mean()) ** 2).sum(). Best possible score is 1.0 and it can be negative (because the model can be arbitrarily worse). A constant model that always predicts the expected value of y, disregarding the input features, would get a R^2 score of 0.0.

Parameters:

X : array-like, shape = (n_samples, n_features)

Test samples.

y : array-like, shape = (n_samples) or (n_samples, n_outputs)

True values for X.

sample_weight : array-like, shape = [n_samples], optional

Sample weights.

Returns:

score : float

R^2 of self.predict(X) wrt. y.

set_params(**params)

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as pipelines). The latter have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Returns:self :