APML0-package {APML0} | R Documentation |
Fit linear, logistic and Cox models regularized with L0, lasso (L1), elastic-net (L1 and L2), or net (L1 and Laplacian) penalty, and their adaptive forms, such as adaptive lasso / elastic-net and net adjusting for signs of linked coefficients. It solves L0 penalty problem by simultaneously selecting regularization parameters and the number of non-zero coefficients. This augmented and penalized minimization method provides an approximation solution to the L0 penalty problem, but runs as fast as L1 regularization problem.
The package uses one-step coordinate descent algorithm and runs extremely fast by taking into account the sparsity structure of coefficients. It could deal with very high dimensional data.
Package: | APML0 |
Type: | Package |
Version: | 0.9 |
Date: | 2018-04-22 |
License: | GPL (>= 2) |
Functions:
APML0
, print.APML0
Xiang Li, Shanghong Xie, Donglin Zeng and Yuanjia Wang
Maintainer: Xiang Li <xli256@its.jnj.com>
Li, X., Xie, S., Zeng, D., Wang, Y. (2018).
Efficient l0-norm feature selection based on augmented and penalized minimization. Statistics in Medicine, 37(3), 473-486.
Boyd, S., Parikh, N., Chu, E., Peleato, B., & Eckstein, J. (2011).
Distributed optimization and statistical learning via the alternating direction method of multipliers. Foundations and Trends in Machine Learning, 3(1), 1-122.
http://dl.acm.org/citation.cfm?id=2185816
Friedman, J., Hastie, T. and Tibshirani, R. (2010).
Regularization paths for generalized linear models via coordinate descent, Journal of Statistical Software, Vol. 33(1), 1.
http://www.jstatsoft.org/v33/i01/
### Linear model ### set.seed(1213) N=100;p=30;p1=5 x=matrix(rnorm(N*p),N,p) beta=rnorm(p1) xb=x[,1:p1]%*%beta y=rnorm(N,xb) fiti=APML0(x,y,penalty="Lasso",nlambda=10) # Lasso fiti2=APML0(x,y,penalty="Lasso",nlambda=10,nfolds=10) # Lasso # attributes(fiti) ### Logistic model ### set.seed(1213) N=100;p=30;p1=5 x=matrix(rnorm(N*p),N,p) beta=rnorm(p1) xb=x[,1:p1]%*%beta y=rbinom(n=N, size=1, prob=1.0/(1.0+exp(-xb))) fiti=APML0(x,y,family="binomial",penalty="Lasso",nlambda=10) # Lasso fiti2=APML0(x,y,family="binomial",penalty="Lasso",nlambda=10,nfolds=10) # Lasso # attributes(fiti) ### Cox model ### set.seed(1213) N=100;p=30;p1=5 x=matrix(rnorm(N*p),N,p) beta=rnorm(p1) xb=x[,1:p1]%*%beta ty=rexp(N,exp(xb)) tcens=rbinom(n=N,prob=.3,size=1) # censoring indicator y=cbind(time=ty,status=1-tcens) fiti=APML0(x,y,family="cox",penalty="Lasso",nlambda=10) # Lasso fiti2=APML0(x,y,family="cox",penalty="Lasso",nlambda=10,nfolds=10) # Lasso # attributes(fiti)