我正在使用glmnet包执行LASSO回归。我现在正在使用插入符号包来处理功能重要性。我不明白的是重要性的价值。谁能开导我?是否有任何公式来计算这些值,或者这是否意味着这些值是基于β值?
ROC curve variable importance
only 7 most important variables shown (out of 25)
Importance
feature1 0.8974
feature2 0.8962
feature3 0.8957
feature4 0.8744
feature5 0.8701
feature6 0.8658
feature7 0.8253
答案 0 :(得分:1)
caret
实际上查看拟合的最终系数,然后取绝对值来对系数进行排名。然后将排序的系数存储为变量重要性。
要查看源代码,您可以输入
getModelInfo("glmnet")$glmnet$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)
} else out <- data.frame(Overall = beta[,1])
out <- abs(out[rownames(out) != "(Intercept)",,drop = FALSE])
out
}