GLM with Elastic Net Regularization Regression Learner
Source:R/LearnerRegrCVGlmnet.R
mlr_learners_regr.cv_glmnet.Rd
Generalized linear models with elastic net regularization.Callsglmnet::cv.glmnet()
from packageglmnet.
The default for hyperparameterfamily
is set to"gaussian"
.
Dictionary
Thismlr3::Learner can be instantiated via thedictionarymlr3::mlr_learners or with the associated sugar functionmlr3::lrn()
:
Meta Information
Task type: “regr”
Predict Types: “response”
Feature Types: “logical”, “integer”, “numeric”
Required Packages:mlr3,mlr3learners,glmnet
Parameters
Id | Type | Default | Levels | Range |
alignment | character | lambda | lambda, fraction | - |
alpha | numeric | 1 | \([0, 1]\) | |
big | numeric | 9.9e+35 | \((-\infty, \infty)\) | |
devmax | numeric | 0.999 | \([0, 1]\) | |
dfmax | integer | - | \([0, \infty)\) | |
eps | numeric | 1e-06 | \([0, 1]\) | |
epsnr | numeric | 1e-08 | \([0, 1]\) | |
exclude | integer | - | \([1, \infty)\) | |
exmx | numeric | 250 | \((-\infty, \infty)\) | |
family | character | gaussian | gaussian, poisson | - |
fdev | numeric | 1e-05 | \([0, 1]\) | |
foldid | untyped | NULL | - | |
gamma | untyped | - | - | |
grouped | logical | TRUE | TRUE, FALSE | - |
intercept | logical | TRUE | TRUE, FALSE | - |
keep | logical | FALSE | TRUE, FALSE | - |
lambda | untyped | - | - | |
lambda.min.ratio | numeric | - | \([0, 1]\) | |
lower.limits | untyped | - | - | |
maxit | integer | 100000 | \([1, \infty)\) | |
mnlam | integer | 5 | \([1, \infty)\) | |
mxit | integer | 100 | \([1, \infty)\) | |
mxitnr | integer | 25 | \([1, \infty)\) | |
nfolds | integer | 10 | \([3, \infty)\) | |
nlambda | integer | 100 | \([1, \infty)\) | |
use_pred_offset | logical | TRUE | TRUE, FALSE | - |
parallel | logical | FALSE | TRUE, FALSE | - |
penalty.factor | untyped | - | - | |
pmax | integer | - | \([0, \infty)\) | |
pmin | numeric | 1e-09 | \([0, 1]\) | |
prec | numeric | 1e-10 | \((-\infty, \infty)\) | |
predict.gamma | numeric | gamma.1se | \((-\infty, \infty)\) | |
relax | logical | FALSE | TRUE, FALSE | - |
s | numeric | lambda.1se | \([0, \infty)\) | |
standardize | logical | TRUE | TRUE, FALSE | - |
standardize.response | logical | FALSE | TRUE, FALSE | - |
thresh | numeric | 1e-07 | \([0, \infty)\) | |
trace.it | integer | 0 | \([0, 1]\) | |
type.gaussian | character | - | covariance, naive | - |
type.logistic | character | - | Newton, modified.Newton | - |
type.measure | character | deviance | deviance, class, auc, mse, mae | - |
type.multinomial | character | - | ungrouped, grouped | - |
upper.limits | untyped | - | - |
Offset
If aTask
contains a column with theoffset
role, it is automatically incorporated during training via theoffset
argument inglmnet::glmnet()
.During prediction, the offset column from the test set is used only ifuse_pred_offset = TRUE
(default), passed via thenewoffset
argument inglmnet::predict.glmnet()
.Otherwise, if the user setsuse_pred_offset = FALSE
, a zero offset is applied, effectively disabling the offset adjustment during prediction.
References
Friedman J, Hastie T, Tibshirani R (2010).“Regularization Paths for Generalized Linear Models via Coordinate Descent.”Journal of Statistical Software,33(1), 1–22.doi:10.18637/jss.v033.i01.
See also
Chapter in themlr3book:https://mlr3book.mlr-org.com/chapters/chapter2/data_and_basic_modeling.html#sec-learners
Packagemlr3extralearners for more learners.
as.data.table(mlr_learners)
for a table of availableLearners in the running session (depending on the loaded packages).mlr3pipelines to combine learners with pre- and postprocessing steps.
Extension packages for additional task types:
mlr3proba for probabilistic supervised regression and survival analysis.
mlr3cluster for unsupervised clustering.
mlr3tuning for tuning of hyperparameters,mlr3tuningspacesfor established default tuning spaces.
Other Learner:mlr_learners_classif.cv_glmnet
,mlr_learners_classif.glmnet
,mlr_learners_classif.kknn
,mlr_learners_classif.lda
,mlr_learners_classif.log_reg
,mlr_learners_classif.multinom
,mlr_learners_classif.naive_bayes
,mlr_learners_classif.nnet
,mlr_learners_classif.qda
,mlr_learners_classif.ranger
,mlr_learners_classif.svm
,mlr_learners_classif.xgboost
,mlr_learners_regr.glmnet
,mlr_learners_regr.kknn
,mlr_learners_regr.km
,mlr_learners_regr.lm
,mlr_learners_regr.nnet
,mlr_learners_regr.ranger
,mlr_learners_regr.svm
,mlr_learners_regr.xgboost
Super classes
mlr3::Learner
->mlr3::LearnerRegr
->LearnerRegrCVGlmnet
Methods
Methodselected_features()
Returns the set of selected features as reported byglmnet::predict.glmnet()
withtype
set to"nonzero"
.
Returns
(character()
) of feature names.
Examples
if(requireNamespace("glmnet", quietly=TRUE)){# Define the Learner and set parameter valueslearner=lrn("regr.cv_glmnet")print(learner)# Define a Tasktask=tsk("mtcars")# Create train and test setids=partition(task)# Train the learner on the training idslearner$train(task, row_ids=ids$train)# print the modelprint(learner$model)# importance methodif("importance"%in%learner$properties)print(learner$importance)# Make predictions for the test rowspredictions=learner$predict(task, row_ids=ids$test)# Score the predictionspredictions$score()}#> <LearnerRegrCVGlmnet:regr.cv_glmnet>: GLM with Elastic Net Regularization#> * Model: -#> * Parameters: family=gaussian, use_pred_offset=TRUE#> * Packages: mlr3, mlr3learners, glmnet#> * Predict Types: [response]#> * Feature Types: logical, integer, numeric#> * Properties: offset, selected_features, weights#>Warning:Option grouped=FALSE enforced in cv.glmnet, since < 3 observations per fold#>#> Call: (if (cv) glmnet::cv.glmnet else glmnet::glmnet)(x = data, y = target, family = "gaussian")#>#> Measure: Mean-Squared Error#>#> Lambda Index Measure SE Nonzero#> min 0.536 24 7.725 4.015 6#> 1se 1.797 11 11.052 6.556 4#> regr.mse#> 19.12881