我使用glm.net包进行了Lasso回归。通过交叉验证选择了lambda值,现在得知最优模型只有6个非零系数。
如何查看这些确切的非零系数?
回答:
由于您没有提供任何样本数据,这里是一个最小示例:
-
生成一些样本数据
set.seed(2017);x1 <- seq(1:100);x2 <- 2 * x1;y <- 3 * x1 + 6 * x2 + rnorm(100);
-
使用交叉验证拟合模型
fit <- cv.glmnet(cbind(x1, x2), y);
-
然后
coef(fit)
会给出不同lambda值的参数估计。我们可以提取导致最小交叉验证误差的lambda
值的参数估计,方法如下:coef(fit, s = "lambda.min")#3 x 1 sparse Matrix of class "dgCMatrix"# 1#(Intercept) 2.439590e+01#x1 1.451704e+01#x2 5.723395e-16