在 R 中使用 "mtcars" 数据集绘制 LASSO 模型

Plotting a LASSO model with "mtcars" dataset in R

我最近了解到 LASSO。因为它看起来有点复杂,所以我尝试使用 mtcars 找到一个例子。以下代码生成自变量图:

library("glmnet")
lasso <- glmnet(as.matrix(mtcars[-1]), mtcars[,1], standardize=TRUE, alpha =1)
plot(lasso)

但是这样做并没有显示哪一行是哪个变量。

This 解释了,但我不知道我需要哪部分代码。

This source比较好读,但不提供剧情代码。

谁能帮我弄清楚哪一行是哪个变量?

使用plot(lasso, label = TRUE)。然后检查rownames(lasso$beta)。第 i 个变量在图中用数值 i 标记。为了更快地循环,你可以做一个 table:

setNames(rownames(lasso$beta), 1:nrow(lasso$beta))

您可能没有意识到您可以检查 ?plot.glmnet。或者您可能已经检查了 ?plot 但在那里什么也没找到。是的,寻找关于某些方法的泛型函数的文档并不简单。

包小插图 old version or the latest version 也涵盖了这个标签问题。

您可以将变量编号添加到图中:

plot(lasso, label=T)

您可以通过以下方式获得系数数:

mycoefs <- coef(lasso)@Dimnames[[1]][-1]
cbind(1:length(mycoefs), mycoefs)