R/extract_importance_glmnet.R
extract_importance_glmnet.Rd
Extract the individual-algorithm extrinsic importance from a glmnet object, along with the importance rank.
extract_importance_glmnet(fit = NULL, feature_names = "", coef = 0)
the glmnet
or cv.glmnet
object
the feature names
the Super Learner coefficient associated with the learner.
a tibble, with columns algorithm
(the fitted algorithm),
feature
(the feature), importance
(the algorithm-specific
extrinsic importance of the feature), rank
(the feature importance
rank, with 1 indicating the most important feature), and weight
(the algorithm's weight in the Super Learner)
data("biomarkers")
# subset to complete cases for illustration
cc <- complete.cases(biomarkers)
dat_cc <- biomarkers[cc, ]
# use only the mucinous outcome, not the high-malignancy outcome
y <- dat_cc$mucinous
x <- dat_cc[, !(names(dat_cc) %in% c("mucinous", "high_malignancy"))]
feature_nms <- names(x)
# get the fit (using only 3 CV folds for illustration only)
set.seed(20231129)
fit <- glmnet::cv.glmnet(x = as.matrix(x), y = y,
family = "binomial", nfolds = 3)
# extract importance
importance <- extract_importance_glmnet(fit = fit, feature_names = feature_nms)
importance
#> # A tibble: 22 × 5
#> algorithm feature importance rank weight
#> <chr> <chr> <dbl> <dbl> <dbl>
#> 1 lasso institution 0 11.5 0
#> 2 lasso lab1_actb 0 11.5 0
#> 3 lasso lab1_molecules_score 0 11.5 0
#> 4 lasso lab1_telomerase_score 0 11.5 0
#> 5 lasso lab2_fluorescence_score 0 11.5 0
#> 6 lasso lab3_muc3ac_score 0 11.5 0
#> 7 lasso lab3_muc5ac_score 0 11.5 0
#> 8 lasso lab4_areg_score 0 11.5 0
#> 9 lasso lab4_glucose_score 0 11.5 0
#> 10 lasso lab5_mucinous_call 0 11.5 0
#> # ℹ 12 more rows