我正在使用glmnet包来构建一个线性回归, = 0.5,以找到最好的。[44x15000] ( ), = numeric[44]
一切似乎运行正常,但是当我重新运行该命令时我的方法不正确吗?
xMatrixy
cvGlmnet <- cv.glmnet(xMatrix, y, alpha=0.5, nfolds=10)
cvGlmnet$lambda.min [1] 10.24038
cvGlmnet$lambda.1se [1] 17.08198
cvGlmnet <- cv.glmnet(xMatrix, y, alpha=0.5, nfolds=10)
cvGlmnet$lambda.min [1] 14.85703
cvGlmnet$lambda.1se [1] 17.08198
cvGlmnet <- cv.glmnet(xMatrix, y, alpha=0.5, nfolds=10)
cvGlmnet$lambda.min [1] 4.865008
cvGlmnet <- cv.glmnet(xMatrix, y, alpha=0.5, nfolds=10)
cvGlmnet$lambda.min [1] 16.30557
cvGlmnet <- cv.glmnet...
cvGlmnet$lambda.min [1] 14.18176
除此之外,我还尝试caret了包来调整和。如果我做对了,给出 = 1 和 = 3。当我按照上面的方法尝试,但使用 = 1 时,值在 5-8 之间移动(至少我尝试过,它们也运行之间变化)。这不应该给一些东西〜3吗?obj$bestTuneglmnet
我试过这个例子
# generate a dummy dataset with 30 predictors (10 useful & 20 useless)
y=rnorm(100)
x1=matrix(rnorm(100*20),100,20)
x2=matrix(y+rnorm(100*10),100,10)
x=cbind(x1,x2)
# use crossvalidation to find the best lambda
library(glmnet)
cv <- cv.glmnet(x,y,alpha=1,nfolds=10)
l <- cv$lambda.min
它也略有变化,但没有我的数据变化那么大。是因为我的数据结构/性质吗?
使用插入符号,alpha 值也发生了很大变化(考虑到它只能介于 0 和 1 之间,并且每个极值都是一种完全不同的方法)。有什么线索吗?