View source: R/cvGlmnetFormula.r
cv.glmnet | R Documentation |
Formula interface for elastic net cross-validation with cv.glmnet
cv.glmnet(x, ...)
## Default S3 method:
cv.glmnet(x, y, ...)
## S3 method for class 'formula'
cv.glmnet(
formula,
data,
alpha = 1,
nfolds = 10,
...,
weights = NULL,
offset = NULL,
subset = NULL,
na.action = getOption("na.action"),
drop.unused.levels = FALSE,
xlev = NULL,
sparse = FALSE,
use.model.frame = FALSE,
gamma = c(0, 0.25, 0.5, 0.75, 1),
relax = FALSE
)
## S3 method for class 'cv.glmnet.formula'
predict(object, newdata, na.action = na.pass, ...)
## S3 method for class 'cv.glmnet.formula'
coef(object, ...)
## S3 method for class 'cv.glmnet.formula'
print(x, ...)
## S3 method for class 'cv.relaxed.formula'
predict(object, newdata, na.action = na.pass, ...)
## S3 method for class 'cv.glmnet.formula'
coef(object, ...)
x |
For the default method, a matrix of predictor variables. |
... |
For |
y |
For the default method, a response vector or matrix (for a multinomial response). |
formula |
A model formula; interaction terms are allowed and will be expanded per the usual rules for linear models. |
data |
A data frame or matrix containing the variables in the formula. |
alpha |
The elastic net mixing parameter. See glmnet::glmnet for more details. |
nfolds |
The number of crossvalidation folds to use. See glmnet::cv.glmnet for more details. |
weights |
An optional vector of case weights to be used in the fitting process. If missing, defaults to an unweighted fit. |
offset |
An optional vector of offsets, an a priori known component to be included in the linear predictor. |
subset |
An optional vector specifying the subset of observations to be used to fit the model. |
na.action |
A function which indicates what should happen when the data contains missing values. For the |
drop.unused.levels |
Should factors have unused levels dropped? Defaults to |
xlev |
A named list of character vectors giving the full set of levels to be assumed for each factor. |
sparse |
Should the model matrix be in sparse format? This can save memory when dealing with many factor variables, each with many levels. |
use.model.frame |
Should the base model.frame function be used when constructing the model matrix? This is the standard method that most R modelling functions use, but has some disadvantages. The default is to avoid |
gamma |
For |
relax |
For |
object |
For the |
newdata |
For the |
The cv.glmnet
function in this package is an S3 generic with a formula and a default method. The former calls the latter, and the latter is simply a direct call to the cv.glmnet
function in package glmnet
. All the arguments to glmnet::cv.glmnet
are (or should be) supported.
There are two ways in which the matrix of predictors can be generated. The default, with use.model.frame = FALSE
, is to process the additive terms in the formula independently. With wide datasets, this is much faster and more memory-efficient than the standard R approach which uses the model.frame
and model.matrix
functions. However, the resulting model object is not exactly the same as if the standard approach had been used; in particular, it lacks a bona fide terms object. If you require interoperability with other packages that assume the standard model object structure, set use.model.frame = TRUE
. See discussion for more information on this topic.
The predict
and coef
methods are wrappers for the corresponding methods in the glmnet package. The former constructs a predictor model matrix from its newdata
argument and passes that as the newx
argument to glmnet:::predict.cv.glmnet
.
For cv.glmnet.formula
, an object of class either cv.glmnet.formula
or cv.relaxed.formula
, based on the value of the relax
argument. This is basically the same object created by glmnet::cv.glmnet
, but with extra components to allow formula usage.
glmnet::cv.glmnet, glmnet::predict.cv.glmnet, glmnet::coef.cv.glmnet, model.frame, model.matrix
cv.glmnet(mpg ~ ., data=mtcars)
cv.glmnet(Species ~ ., data=iris, family="multinomial")
## Not run:
# Leukemia example dataset from Trevor Hastie's website
download.file("https://web.stanford.edu/~hastie/glmnet/glmnetData/Leukemia.RData",
"Leukemia.RData")
load("Leukemia.Rdata")
leuk <- do.call(data.frame, Leukemia)
cv.glmnet(y ~ ., leuk, family="binomial")
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.