controlGLMNET
controlGLMNET.Rd
The following arguments can be used to adjust the GLMNET optimization. See Friedman, J., Hastie, T., & Tibshirani, R. (2010). Regularization Paths for Generalized Linear Models via Coordinate Descent. Journal of Statistical Software, 33(1), 1–20. https://doi.org/10.18637/jss.v033.i01 Yuan, G.-X., Ho, C.-H., & Lin, C.-J. (2012). An improved GLMNET for l1-regularized logistic regression. The Journal of Machine Learning Research, 13, 1999–2030. https://doi.org/10.1145/2020408.2020421
Usage
controlGLMNET(
tryCpptsem = TRUE,
forceCpptsem = FALSE,
stepSize = 1,
lineSearch = "GLMNET",
c1 = 1e-04,
c2 = 0.9,
sig = 10^(-5),
gam = 0,
initialHessianApproximation = "OpenMx",
maxIter_out = 100,
maxIter_in = 1000,
maxIter_line = 500,
eps_out = 1e-06,
eps_in = 1e-06,
eps_WW = 1e-04,
approxFirst = TRUE,
numStart = 0,
nMultistart = 5,
controlApproxOptimizer = controlRsolnp(nudgeVariancesLambda = 0.2, nudgeVariancesTarget
= log(0.4), control = list(outer.iter = 50, trace = 0))
)
Arguments
- tryCpptsem
should regCtsem try to translate the model to cpptsem? This can speed up the computation considerably but might fail for some models
- forceCpptsem
should cpptsem be enforced even if results differ from ctsem? Sometimes differences between cpptsem and ctsem can result from problems with numerical precision which will lead to the m,atrix exponential of RcppArmadillo differing from the OpenMx matrix exponential. If you want to ensure the faster optimization, set to TRUE. See vignette("MatrixExponential", package = "regCtsem") for more details
- stepSize
initial step size of the outer iteration
- lineSearch
String indicating which linesearch should be used. Defaults to the one described in Yuan, G.-X., Ho, C.-H., & Lin, C.-J. (2012). An improved GLMNET for l1-regularized logistic regression. The Journal of Machine Learning Research, 13, 1999–2030. https://doi.org/10.1145/2020408.2020421. Alternatively (not recommended) Wolfe conditions (lineSearch = "Wolfe") can be used in the outer iteration. Setting to "none" is also not recommended!.
- c1
c1 constant for lineSearch. This constant controls the Armijo condition in lineSearch if lineSearch = "Wolfe"
- c2
c2 constant for lineSearch. This constant controls the Curvature condition in lineSearch if lineSearch = "Wolfe"
- sig
for lineSearch = 'GLMNET': Controls the sigma parameter in Yuan, G.-X., Ho, C.-H., & Lin, C.-J. (2012). An improved GLMNET for l1-regularized logistic regression. The Journal of Machine Learning Research, 13, 1999–2030. https://doi.org/10.1145/2020408.2020421, Equation 20. Defaults to 0. Has to be in 0 < sigma < 1
- gam
for lineSearch = 'GLMNET': Controls the gamma parameter in Yuan, G.-X., Ho, C.-H., & Lin, C.-J. (2012). An improved GLMNET for l1-regularized logistic regression. The Journal of Machine Learning Research, 13, 1999–2030. https://doi.org/10.1145/2020408.2020421, Equation 20. Defaults to 0. Has to be in 0 <= gamma < 1
- initialHessianApproximation
Which initial hessian approximation should be used? Possible are: 'ident' for an identity matrix and 'OpenMx' (here the hessian approxmiation from the mxObject is used). If the Hessian from 'OpenMx' is not positive definite, the negative Eigenvalues will be 'flipped' to positive Eigenvalues. This works sometimes, but not always. Alternatively, a matrix can be provided which will be used as initial Hessian
- maxIter_out
Maximal number of outer iterations
- maxIter_in
Maximal number of inner iterations
- maxIter_line
Maximal number of iterations for the lineSearch procedure
- eps_out
Stopping criterion for outer iterations
- eps_in
Stopping criterion for inner iterations
- eps_WW
Stopping criterion for weak Wolfe line search. If the upper - lower bound of the interval is < epsWW, line search will be stopped and stepSize will be returned
- approxFirst
Should approximate optimization be used first to obtain start values for exact optimization?
- numStart
Used if approxFirst = 3. regCtsem will try numStart+2 starting values (+2 because it will always try the current best and the parameters provided in sparseParameters)
- nMultistart
controls how many different starting values are tried when estimating lambda_max´
- controlApproxOptimizer
settings passed to the optimizer in approximate optimization. Currently, Rsolnp and optimx are supported. See ?controlOptimx and ?controlSolnp for details on the lists passed to controlApprox