- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题需要details or clarity .它目前不接受答案。
想改进这个问题?通过 editing this post 添加详细信息并澄清问题.
1年前关闭。
Improve this question
我使用 glmnet
拟合了 Lasso Logistic 回归模型
X = data.matrix(mtcars %>% dplyr::select(-vs))
y = mtcars$vs
CV_lasso = cv.glmnet(X, y, alpha = 1, family = "binomial", type.measure = "class")
我试图确定变量的重要性,并遇到了两种产生截然不同结果的方法
vip(CV_lasso$glmnet.fit)
varImp(CV_lasso$glmnet.fit, lambda = CV_lasso$lambda.min)
有人能告诉我这些方法有什么区别,哪一种更好吗?从逻辑套索模型中确定变量重要性的最佳方法是什么?
最佳答案
似乎是因为他们对 lambda
使用了不同的值。 .在 varImp
,您指定哪个 lambda
使用。但是,当您调用 vip
,然后在源代码中,执行以下代码:
imp <- if (inherits(object, what = "vi")) {
object
} else {
vi(object = object, ...) # compute variable importance scores
}
在哪里
vi(object = object, ...)
被调用。在
vi
的源代码中函数,在某些时候这个小标题被定义:
tib <- switch(method,
"model" = vi_model(object, ...),
"firm" = vi_firm(object, feature_names = feature_names, var_fun = var_fun,
ice = ice, ...),
"permute" = vi_permute(object, feature_names = feature_names, ...),
vi_shap(object, feature_names = feature_names, ...)
)
问题出现在
"model"
的定义中。 .尝试运行时
vi_model
.在此函数中,此代码用于确定要使用的 lambda:
# Extract coefficients
s <- list(...)$s
if (is.null(s)) {
s <- min(object$lambda)
}
由于您还没有定义
s
, 然后它被设置为你的 lambdas 中的最小值。这是 lambda 的最后一个值,即 0.0001119218。这不等于
varImp
中使用的 lambda。 ,您指定使用最佳 lambda,在本例中为 0.1586463。
c1 = vip::vi_model(CV_lasso$glmnet.fit, s = CV_lasso$lambda.min)
c2 = caret::varImp(CV_lasso$glmnet.fit, lambda = CV_lasso$lambda.min)
然后如果你坚持使用
vip::vip
要获得绘图,您可以在
c1
上调用此函数:
vip::vip(c1)
关于r - glmnet 变量重要性 | `vip` 与 `varImp`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64628970/
我正在使用 caret 包来运行 gbm 模型。模型运行后,我使用 varImp 函数提取重要预测变量的列表(显示前 20 个)。不过,我想在字符列表中捕获预测变量的名称。我怎么做?从 varImp
我正在尝试使用 Party 包运行随机森林模型。我想使用 varimp 函数来确定条件变量的重要性,但它似乎不接受分类变量。这是一个link到我的数据,下面是我正在使用的代码。 > #set up d
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题?通过 editing this post 添加详细信息并澄清问题. 1年前关闭。 Improve this
使用 caret 在 R 中训练模型时包,在绘制模型的变量重要性时出现错误。几种挖掘算法(bayesglm、glm、naive_bayes、...)都会发生这种情况。 control <- train
我不明白 varImp 函数(caret 包)和 importance 函数(randomForest > 包)用于随机森林模型: 我计算了一个简单的 RF 分类模型,在计算变量重要性时,我发现两个函
我想使用caret包中的“varImp”。它以前工作过,我不确定为什么它不再工作了。 我将其应用于对数模型。 log_model_logit % as.data.frame() 我仍然不确定为什么没有
我是一名优秀的程序员,十分优秀!