我正在开发一个项目,旨在展示一组事件对结果的潜在影响。我正在使用glmnet()包,具体使用泊松特征。这是我的代码:
# de <- data imported from sql connection
x <- model.matrix(~.,data = de[,2:7])
y <- (de[,1])
reg <- cv.glmnet(x,y, family = "poisson", alpha = 1)
reg1 <- glmnet(x,y, family = "poisson", alpha = 1)
**Co <- coef(?reg or reg1?,s=???)**
summ <- summary(Co)
c <- data.frame(Name= rownames(Co)[summ$i],
Lambda= summ$x)
c2 <- c[with(c, order(-Lambda)), ]
一开始我从我的SQL数据库中导入了大量数据。然后我将其以矩阵格式放置并将响应与预测变量分开。
这就是我困惑的地方:我无法确定glmnet()函数和cv.glmnet()函数之间的确切区别。我知道cv.glmnet()函数是对glmnet()函数进行 k 折交叉验证,但在实际操作中这意味着什么呢?它们为 lambda 提供相同的值,但我想确保我没有错过两者之间的重要差异。
我还不清楚为什么当我指定alpha=1(默认值)时可以正常运行,但是如果不加就会出问题?
提前感谢!
plot(reg)
。 - Rolandfit$lambda.min
获取最优lambda值,并在所有调用predict()
、coef()
等函数时使用s=lambda.min
参数。 - smci