adelie.state.gaussian_pin_naive#
- adelie.state.gaussian_pin_naive(*, X: MatrixNaiveBase32 | MatrixNaiveBase64, y_mean: float, y_var: float, constraints: list[ConstraintBase32 | ConstraintBase64], groups: ndarray, alpha: float, penalty: ndarray, weights: ndarray, screen_set: ndarray, lmda_path: ndarray, rsq: float, resid: ndarray, screen_beta: ndarray, screen_is_active: ndarray, active_set_size: int, active_set: ndarray, intercept: bool = True, max_active_size: int | None = None, max_iters: int = 100000, tol: float = 1e-07, adev_tol: float = 0.9, ddev_tol: float = 0, newton_tol: float = 1e-12, newton_max_iters: int = 1000, n_threads: int = 1)[source]#
Creates a Gaussian, pin, naive method state object.
Define the following quantities:
\(X_c\) as \(X\) if
intercept
isFalse
and otherwise the column-centered version.\(y_c\) as \(y\) if
intercept
isFalse
and otherwise the centered version.
- Parameters:
- XUnion[MatrixNaiveBase32, MatrixNaiveBase64]
Feature matrix. It is typically one of the matrices defined in
adelie.matrix
submodule.- y_meanfloat
Mean of the response vector \(y\) (weighted by \(W\)), i.e. \(\mathbf{1}^\top W y\).
- y_varfloat
\(\ell_2\) norm squared (weighted by \(W\)) of \(y_c\), i.e. \(\|y_c\|_{W}^2\). Variance of the response vector \(y\) (weighted by \(W\)), i.e. \(\|y_c\|_{W}^2\). This is only used to check convergence as a relative measure, i.e. this quantity is the “null” model MSE.
- constraints(G,) list[Union[ConstraintBase32, ConstraintBase64]]
List of constraints for each group.
constraints[i]
is the constraint object corresponding to groupi
. Ifconstraints[i]
isNone
, then thei
th group is unconstrained. IfNone
, every group is unconstrained.- groups(G,) ndarray
List of starting indices to each group where G is the number of groups.
groups[i]
is the starting index of thei
th group.- alphafloat
Elastic net parameter. It must be in the range \([0,1]\).
- penalty(G,) ndarray
Penalty factor for each group in the same order as
groups
. It must be a non-negative vector.- weights(n,) ndarray
Observation weights \(W\). The weights must sum to 1.
- screen_set(s,) ndarray
List of indices into
groups
that correspond to the screen groups.screen_set[i]
isi
th screen group.screen_set
must contain at least the true (optimal) active groups when the regularization is given bylmda
.- lmda_path(L,) ndarray
The regularization path to solve for. It is recommended that the path is sorted in decreasing order.
- rsqfloat
The change in unnormalized \(R^2\) given by \(\|y_c-X_c\beta_{\mathrm{old}}\|_{W}^2 - \|y_c-X_c\beta_{\mathrm{curr}}\|_{W}^2\). Usually, \(\beta_{\mathrm{old}} = 0\) and \(\beta_{\mathrm{curr}}\) is given by
screen_beta
.- resid(n,) ndarray
Residual \(y_c - X \beta\) where \(\beta\) is given by
screen_beta
.- screen_beta(ws,) ndarray
Coefficient vector on the screen set.
screen_beta[b:b+p]
is the coefficient for thei
th screen group wherek = screen_set[i]
,b = screen_begins[i]
, andp = group_sizes[k]
. The values can be arbitrary but it is recommended to be close to the solution atlmda
.- screen_is_active(s,) ndarray
Boolean vector that indicates whether each screen group in
groups
is active or not.screen_is_active[i]
isTrue
if and only ifscreen_set[i]
is active.- active_set_sizeint
Number of active groups.
active_set[i]
is only well-defined fori
in the range[0, active_set_size)
.- active_set(G,) ndarray
List of indices into
screen_set
that correspond to active groups.screen_set[active_set[i]]
is thei
th active group. An active group is one with non-zero coefficient block, that is, for everyi
th active group,screen_beta[b:b+p] == 0
wherej = active_set[i]
,k = screen_set[j]
,b = screen_begins[j]
, andp = group_sizes[k]
.- interceptbool, optional
True
to fit with intercept. Default isTrue
.- max_active_sizeint, optional
Maximum number of active groups allowed. The function will return a valid state and guarantees to have active set size less than or equal to
max_active_size
. IfNone
, it will be set to the total number of groups. Default isNone
.- max_itersint, optional
Maximum number of coordinate descents. Default is
int(1e5)
.- tolfloat, optional
Coordinate descent convergence tolerance. Default is
1e-7
.- adev_tolfloat, optional
Percent deviance explained tolerance. If the training percent deviance explained exceeds this quantity, then the solver terminates. Default is
0.9
.- ddev_tolfloat, optional
Difference in percent deviance explained tolerance. If the difference of the last two training percent deviance explained exceeds this quantity, then the solver terminates. Default is
0
.- newton_tolfloat, optional
Convergence tolerance for the BCD update. Default is
1e-12
.- newton_max_itersint, optional
Maximum number of iterations for the BCD update. Default is
1000
.- n_threadsint, optional
Number of threads. Default is
1
.
- Returns:
- wrap
Wrapper state object.