我正在使用具有不同lambda值的glmnet测试此简单的交叉验证代码。我想找到最佳的λ值。每次我使用一系列lambda值运行它时,结果只能得到最高的lambda。
例如:
set.seed(19874)
X=matrix(rnorm(500*500), nrow=500, ncol=500)
Y=matrix(rnorm(500), nrow=500, ncol=1)
lambdas=seq(0.01,0.5, length.out = 50)
cv.err=cv.glmnet(X,Y,alpha=1, lambda = lambdas)
bestlam=cv.err$lambda.min
在此示例中,bestlam=0.5
。如果我将lambda序列更改为20 lambdas=seq(0.01,20, length.out = 50)
,bestlam=20
,依此类推。
最好的lambda总是最高的。
我不确定这是否正确,因为该lambda值会将所有系数设置为零。