One of the main functions in the hierNet package. Fits a path of hierNet models over different values of the regularization parameter. Calls hierNet, 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 an alternate algorithm for large scale problems.
hierNet.path(x, y,
lamlist = NULL, delta=1e-8, minlam = NULL, maxlam = NULL, nlam=20, flmin=.01,
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)
A matrix of predictors, where the rows are the samples and the columns are the predictors
A vector of observations, where length(y) equals nrow(x)
Optional vector of values of lambda (the regularization parameter). L1 penalty param is lamdbda * (1-delta)
.
Elastic Net parameter. Squared L2 penalty param is lambda * delta
. Not a tuning parameter: Think of as fixed and small. Default 1e-8.
Optional minimum value for lambda
Optional maximum value for lambda
Number of values of lambda to be tried
Fraction of maxlam; minlam= flmin*maxlam. If computation is slow, try increasing flmin to focus on the sparser part of the path
Flag specifying whether to include "pure" quadratic terms, th_jjX_j^2, in the model. Default TRUE.
Flag specifying strong hierarchy (true) or weak hierarchy (false). Default false
An *optional* argument, a list with results from a previous call
An *optional* argument, a matrix whose columns are products of features, computed by the function compute.interactions.c
Should main effects be standardized? Default TRUE
Should interactions be standardized? Default FALSE
ADMM parameter: tuning parameter (>0) for ADMM. If there are convergence problems, try decreasing rho. Default n.
ADMM parameter: number of iterations
ADMM parameter Thresholding for symmetrizing with strong=TRUE
Stepsize for generalized gradient descent
Maximum number of iterations for generalized gradient descent
Backtrack parameter for generalized gradient descent
Error tolerance parameter for generalized gradient descent
Output option; trace=1 gives verbose output
p by nlam matrix of estimated "positive part" main effects (p=#variables)
p by nlam matrix of estimated "negative part" main effects
p by p by nlam array of estimated interaction coefficients
nlam values of objective function, one per lambda value
Vector of values of lambda used
p-vector of column means of x
p-vector of column standard deviations of x
mean of y
column means of feature product matrix
column standard deviations of feature product matrix
Bien, J., Taylor, J., Tibshirani, R., (2013) "A Lasso for Hierarchical Interactions." Annals of Statistics. 41(3). 1111-1141.
# 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)
fit=hierNet.path(x,y)
print(fit)
# }
Run the code above in your browser using DataLab