gpt4 book ai didi

r - glmnet-可变的重要性?

转载 作者:行者123 更新时间:2023-12-02 11:26:18 24 4
gpt4 key购买 nike

我正在使用glmnet软件包执行LASSO回归。有没有办法让所选的各个变量变得重要?我考虑过对通过coef(...)命令获得的系数进行排名(即距零的距离越大,变量将越重要)。那是一个有效的方法吗?

谢谢你的帮助!

cvfit = cv.glmnet(x, y, family = "binomial")
coef(cvfit, s = "lambda.min")

## 21 x 1 sparse Matrix of class "dgCMatrix"
## 1
## (Intercept) 0.14936
## V1 1.32975
## V2 .
## V3 0.69096
## V4 .
## V5 -0.83123
## V6 0.53670
## V7 0.02005
## V8 0.33194
## V9 .
## V10 .
## V11 0.16239
## V12 .
## V13 .
## V14 -1.07081
## V15 .
## V16 .
## V17 .
## V18 .
## V19 .
## V20 -1.04341

最佳答案

这是在caret包中完成的。
总而言之,您可以采用最终系数的绝对值并对它们进行排名。排名系数是您可变的重要性。
要查看源代码,您可以输入

caret::getModelInfo("glmnet")$glmnet$varImp
如果您不想使用 caret包,则可以从该包中运行以下几行,它应该可以工作。
varImp <- function(object, lambda = NULL, ...) {

## skipping a few lines

beta <- predict(object, s = lambda, type = "coef")
if(is.list(beta)) {
out <- do.call("cbind", lapply(beta, function(x) x[,1]))
out <- as.data.frame(out, stringsAsFactors = TRUE)
} else out <- data.frame(Overall = beta[,1])
out <- abs(out[rownames(out) != "(Intercept)",,drop = FALSE])
out
}
最后,根据需要调用该函数。
varImp(cvfit, lambda = cvfit$lambda.min)

关于r - glmnet-可变的重要性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35461839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com