glinternet {glinternet} | R Documentation |
Fit a linear interaction model with group-lasso regularization that enforces strong hierarchy in the estimated coefficients
Description
The regularization path is computed along a grid of values for the regularization parameter lambda. Can deal with categorical variables with arbitrary numbers of levels, continuous variables, and combinations of the two. Accommodates squared error loss and logistic loss.
The multicore option requires that the package be compiled with OpenMP support. Examples of compilers that qualify include gcc (>= 4.2) and icc. We also recommend a higher level of optimization, such as -O3 in gcc.
Usage
glinternet(X, Y, numLevels, lambda = NULL, nLambda = 50, lambdaMinRatio = 0.01,
interactionCandidates=NULL, interactionPairs=NULL, screenLimit = NULL, numToFind = NULL,
family = c("gaussian","binomial"), tol = 1e-05, maxIter=5000, verbose=FALSE,
numCores = 1)
Arguments
X |
Matrix of features or predictors with dimension nobs x nvars; each row is an observation vector. Categorical variables must be coded as 0, 1, 2, ... |
Y |
Target variable of length nobs. Continuous for squared error loss, 0-1 for logistic loss. |
numLevels |
Number of levels for each variable, of length nvars. Set to 1 for continuous variables. |
lambda |
A user supplied |
nLambda |
The number of |
lambdaMinRatio |
Smallest value for |
interactionCandidates |
An optional vector of variable
indices. This will force the algorithm to only consider interactions
between |
interactionPairs |
An optional nx2 matrix of variable indices. This will force the algorithm to only consider the interaction pairs defined by this matrix. For example, matrix(c(1,2,1,5), ncol=2, byrow=TRUE) restricts the model to two interaction pairs: one between variables 1 and 2, and another between 1 and 5. |
screenLimit |
If not null (the default), limits the size of the interaction
search space to |
numToFind |
Stops the program after |
family |
A character string describing the target variable: "gaussian" for continuous (the default), "binomial" for logistic. |
tol |
Convergence tolerance in the adaptive FISTA algorithm. |
maxIter |
Maximum number of iterations in adaptive FISTA. Default 5000. |
verbose |
Prints progress. False by default. |
numCores |
Number of threads to run. For this to work, the package must be installed with OpenMP enabled. Default is 1 thread. |
Details
The sequence of models implied by lambda
is fit by FISTA (fast
iterative soft thresholding) with adaptive step size and adaptive
momentum restart. The continuous features are standardized to have
unit norm and mean zero before computing the lambda
sequence
and fitting. The returned coefficients are unstandardized. Categorical
variables are not standardized.
Value
An object of class glinternet
with the components
call |
The user function call. |
fitted |
The fitted values, with dimension nobs x
|
lambda |
The actual |
objValue |
Objective values for each lambda. |
activeSet |
A list (of length |
betahat |
List (of length |
numLevels |
The number of levels for each variable. |
family |
The target variable type. |
Author(s)
Michael Lim and Trevor Hastie
Maintainer: Michael Lim michael626@gmail.com
References
Michael Lim and Trevor Hastie (2013)Learning interactions via hierarchical group-lasso regularization, https://arxiv.org/abs/1308.2719
See Also
glinternet.cv
, predict.glinternet
,
predict.glinternet.cv
, plot.glinternet.cv
, coef.glinternet
Examples
# gaussian response, continuous features
Y = rnorm(100)
X = matrix(rnorm(100*10), nrow=100)
numLevels = rep(1, 10)
fit = glinternet(X, Y, numLevels)
#binary response, continuous features
Y = rbinom(100, 1, 0.5)
fit = glinternet(X, Y, numLevels, family="binomial")
#binary response, categorical variables
X = matrix(sample(0:2, 100*10, replace=TRUE), nrow=100)
numLevels = rep(3, 10)
fit = glinternet(X, Y, numLevels, family="binomial")