在 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)
我最近了解到 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)