我将 tidymodels 网站上的这个示例用于我自己的数据 ( https://www.tidymodels.org/start/case-study/ )。 与此示例相反,我的数据表明惩罚逻辑回归在准确性方面优于随机森林。 然而,在这个例子中,它没有描述如何从惩罚物流回归 (GLMNET) 模型评估特征重要性。 我的问题是这个模型是否选择了一些预测变量进入模型?如果是,您如何确定选择了哪些特征以及如何从惩罚物流回归 (glmnet) 中找出特征的重要性? 非常感谢您的回答
答案 0 :(得分:0)
如果您真的按照链接中的示例进行操作,您会注意到它们设置了 mixture=1
,这基本上是从 glmnet
运行 lasso。您很可能应该尝试调整您的 penalty
项,但最终,非零系数是选择的系数。您可以在 glmnet 上阅读此帮助页面,我认为它们涵盖得很好。
使用一个非常小的例子,我将 penalty
或 lambda
设置为 0.01,您可以看到哪些系数是非零的:
library(tidymodels)
library(mlbench)
data(Sonar)
lr_mod <-
logistic_reg(penalty = 0.01, mixture = 1) %>%
set_engine("glmnet") %>%
fit(Class ~. , data = Sonar)
reg_coef = coef(lr_mod$fit,s=0.01)
这些被选中(包括拦截):
reg_coef[reg_coef[,1]>0,]
(Intercept) V3 V7 V8 V14 V16
4.515343499 7.554970397 4.682233799 3.056506356 0.003707144 2.506047798
V31 V36 V37 V40 V50 V55
3.069514694 2.271717076 1.270513186 1.697256135 32.854319954 12.996429503
V57
36.520376537
这些被踢出:
reg_coef[reg_coef[,1]==0,]
V2 V5 V6 V10 V13 V15 V17 V18 V19 V25 V26 V27 V33 V34 V35 V38 V41 V42 V43 V46
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
V47 V53 V56 V60
0 0 0 0