如何查看 cv.glmnet 中哪些系数不为 0
How to see which coefficients are not 0 in cv.glmnet
我使用 glm.net 包进行了套索回归。我通过交叉验证选择了我的 lambda,现在得到的信息是最优模型只有 6 个不为零的系数。
我怎样才能知道哪些系数是正确的?
由于您没有提供任何样本数据,这里是一个最小的例子:
生成一些示例数据
set.seed(2017);
x1 <- seq(1:100);
x2 <- 2 * x1;
y <- 3 * x1 + 6 * x2 + rnorm(100);
使用 CV 拟合模型
fit <- cv.glmnet(cbind(x1, x2), y);
然后coef(fit)
给出不同lambda值的参数估计值。我们可以提取 lambda
值的参数估计值,从而导致最小的 CV 误差
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
我使用 glm.net 包进行了套索回归。我通过交叉验证选择了我的 lambda,现在得到的信息是最优模型只有 6 个不为零的系数。
我怎样才能知道哪些系数是正确的?
由于您没有提供任何样本数据,这里是一个最小的例子:
生成一些示例数据
set.seed(2017); x1 <- seq(1:100); x2 <- 2 * x1; y <- 3 * x1 + 6 * x2 + rnorm(100);
使用 CV 拟合模型
fit <- cv.glmnet(cbind(x1, x2), y);
然后
coef(fit)
给出不同lambda值的参数估计值。我们可以提取lambda
值的参数估计值,从而导致最小的 CV 误差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