hierNet (version 1.9)

hierNet.logistic.path: Fit a path of logistic hierNet models- lasso models with interactions

Description

One of the main functions in the hierNet package. Fits a logistic path of hierNet models over different values of the regularization parameter. Calls hierNet.logistic, which builds a regression model with hierarchically constrained pairwise interactions. Required inputs are an x matrix of features (the columns are the features) and a y vector of values. Reasonably fast for moderate sized problems (100-200 variables). We are currently working on a alternate algorithm for large scale problems.

Usage

hierNet.logistic.path(x, y,
           lamlist = NULL, delta=1e-8, minlam = NULL, maxlam = NULL, flmin=.01, nlam = 20,
           diagonal = TRUE, strong = FALSE, aa = NULL, zz = NULL,
           stand.main = TRUE, stand.int = FALSE,
           rho = nrow(x), niter = 100, sym.eps = 0.001, 
           step = 1, maxiter = 2000, backtrack = 0.2, tol = 1e-05, trace = 0)

Arguments

x

A matrix of predictors, where the rows are the samples and the columns are the predictors

y

A vector of observations equal to 0 or 1, where length(y) equals nrow(x)

lamlist

Optional vector of values of lambda (the regularization parameter). L1 penalty param is lambda * (1-delta).

delta

Elastic Net parameter. Squared L2 penalty param is lambda * delta. Not a tuning parameter: Think of as fixed and small. Default 1e-8.

minlam

Optional minimum value for lambda

maxlam

Optional maximum value for lambda

flmin

Fraction of maxlam; minlam= flmin*maxlam. If computation is slow, try increasing flmin to focus on the sparser part of the path

nlam

Number of values of lambda to be tried

diagonal

Flag specifying whether to include "pure" quadratic terms, th_jjX_j^2, in the model. Default TRUE.

stand.main

Should main effects be standardized? Default TRUE

stand.int

Should interactions be standardized? Default FALSE

strong

Flag specifying strong hierarchy (TRUE) or weak hierarchy (FALSE). Default FALSE

aa

An *optional* argument, a list with results from a previous call

zz

An *optional* argument, a matrix whose columns are products of features, computed by the function compute.interactions.c

rho

ADMM parameter: tuning parameter (>0) for ADMM. If there are convergence problems, try decreasing rho. Default n.

niter

ADMM parameter: number of iterations

sym.eps

ADMM parameter Thresholding for symmetrizing with strong=TRUE

step

Stepsize for generalized gradient descent

maxiter

Maximum number of iterations for generalized gradient descent

backtrack

Backtrack parameter for generalized gradient descent

tol

Error tolerance parameter for generalized gradient descent

trace

Output option; trace=1 gives verbose output

Value

bp

p by nlam matrix of estimated "positive part" main effects (p=#features)

bn

p by nlam matrix of estimated "negative part" main effects

th

p by p by nlam array of estimated interaction coefficients

obj

nlam values of objective function, one per lambda value

lamlist

Vector of values of lambda used

mx

p-vector of column means of x

sx

p-vector of column standard deviations of x

my

mean of y

mzz

column means of feature product matrix

szz

column standard deviations of feature product matrix

References

Bien, J., Taylor, J., Tibshirani, R., (2013) "A Lasso for Hierarchical Interactions." Annals of Statistics. 41(3). 1111-1141.

See Also

hierNet,predict.hierNet, hierNet.cv

Examples

Run this code
# NOT RUN {
set.seed(12)
x=matrix(rnorm(100*10),ncol=10)
x=scale(x,TRUE,TRUE)
y=x[,1]+2*x[,2]+ x[,1]*x[,2]+3*rnorm(100)
y=1*(y>0)
fit=hierNet.logistic.path(x,y)
print(fit)
# }

Run the code above in your browser using DataCamp Workspace