【发布时间】:2021-08-02 19:34:25
【问题描述】:
我已经使用插入符号构建了一个使用 10 倍 cv 的弹性网络模型,我想看看最终模型中使用了哪些系数(即那些没有减少到零的系数)。我使用以下代码查看系数,但是,这似乎是为使用的系数值的每个排列创建一个数据框,而不是最终模型中使用的那些:
tr_control = train_control(method="cv",number=10)
formula = response ~.
model1 = caret::train(formula,
data=training,
method="glmnet",
trControl=tr_control,
metric = "Accuracy",
family = "binomial")
然后为了从最终模型中提取系数并使用最佳 lambda 值,我使用了以下方法:
data.frame(as.matrix(coef(model1$finalModel, model1$bestTune$.lambda)))
但是,这只是返回所有系数的数据框,我可以看到系数已减小为零的不同实例,但是,我不确定最终模型使用哪个。使用一些稍微不同的代码,我得到的结果略有不同,但在这种情况下,没有一个系数被减少到零,这表明最终模型没有将任何系数减少到零:
data.frame(as.matrix(coef(model1$finalModel, model1$bestTune$lambda))) #i have removed the full stop preceeding lambda
基本上,我想知道最终模型中有哪些特征,以评估模型作为特征缩减过程的表现(以及标准模型评估指标,例如准确度、灵敏度等)。
【问题讨论】: