One of the main functions in the hierNet package. Builds a logistic 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.
hierNet.logistic(
x,
y,
lam,
delta = 1e-08,
diagonal = TRUE,
strong = FALSE,
aa = NULL,
zz = NULL,
center = TRUE,
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 = 1
)Intercept
p-vector of estimated "positive part" main effect (p=#features)
p-vector of estimated "negative part" main effect; overall main effect estimated coefficients are bp-bn
Matrix of estimated interaction coefficients, of dimension p by p
Value of objective function at minimum.
Value of lambda used
Type of model fit- "gaussian" or "logistic" (binomial)
p-vector of column means of x
Mean of y
p-vector of column standard deviations of x
column means of feature product matrix
The call to hierNet
A matrix of predictors, where the rows are the samples and the columns are the predictors
A vector of observations, with values 0 or 1, where length(y) equals nrow(x)
Regularization parameter (>0). L1 penalty param is lam *
(1-delta).
Elastic Net parameter. Squared L2 penalty param is lam *
delta. Not a tuning parameter: Think of as fixed and small. Default 1e-8.
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 features be centered? Default TRUE; FALSE should rarely be used. This option is available for special uses only
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
Jacob Bien and Robert Tibshirani
Bien, J., Taylor, J., Tibshirani, R., (2013) "A Lasso for Hierarchical Interactions." Annals of Statistics. 41(3). 1111-1141.
predict.hierNet.logistic,hierNet.logistic.path
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(x,y,lam=5)
print(fit)
Run the code above in your browser using DataLab