.fit.enet | R Documentation |
tidyfit
Fits an ElasticNet regression or classification on a 'tidyFit' R6
class. The function can be used with regress
and classify
.
## S3 method for class 'enet'
.fit(self, data = NULL)
self |
a 'tidyFit' R6 class. |
data |
a data frame, data frame extension (e.g. a tibble), or a lazy data frame (e.g. from dbplyr or dtplyr). |
Hyperparameters:
lambda
(penalty)
alpha
(L1-L2 mixing parameter)
Important method arguments (passed to m
)
The ElasticNet regression is estimated using glmnet::glmnet
. See ?glmnet
for more details. For classification pass family = "binomial"
to ...
in m
or use classify
.
Implementation
If the response variable contains more than 2 classes, a multinomial response is used automatically.
An intercept is always included and features are standardized with coefficients transformed to the original scale.
If no hyperparameter grid is passed (is.null(control$lambda)
and is.null(control$alpha)
), dials::grid_regular()
is used to determine a sensible default grid. The grid size is 100 for lambda
and 5 for alpha
. Note that the grid selection tools provided by glmnet::glmnet
cannot be used (e.g. dfmax
). This is to guarantee identical grids across groups in the tibble.
A fitted 'tidyFit' class model.
Johann Pfitzinger
Jerome Friedman, Trevor Hastie, Robert Tibshirani (2010). Regularization Paths for Generalized Linear Models via Coordinate Descent. Journal of Statistical Software, 33(1), 1-22. URL https://www.jstatsoft.org/v33/i01/.
.fit.lasso
, .fit.adalasso
, .fit.ridge
and m
methods
# Load data
data <- tidyfit::Factor_Industry_Returns
# Stand-alone function
fit <- m("enet", Return ~ ., data, lambda = c(0, 0.1), alpha = 0.5)
fit
# Within 'regress' function
fit <- regress(data, Return ~ ., m("enet", alpha = c(0, 0.5), lambda = c(0.1)),
.mask = c("Date", "Industry"), .cv = "vfold_cv")
coef(fit)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.