我有一个关于 cv.lars 的问题。下面是我使用的数据描述:
is.numeric(Y$Y1)
[1] TRUE
length(Y$Y1)
[1] 589
dim(Training_XX[7:ncol(Training_XX)])
[1] 589 5677
我已经使用 lars 包运行了 lasso。我的代码如下:
LASSO_1<-lars(as.matrix(X[7:ncol(X)]),
Y$Y1,type=c("lasso"),
normalize=TRUE, use.Gram=FALSE).
上述过程似乎可以正常运行。然而,当我尝试为lambda值进行交叉验证时,出现以下错误:
Error in if (zmin < gamhat) { : missing value where TRUE/FALSE needed
我的交叉验证代码如下:
CV<-cv.lars(as.matrix(X[7:ncol(X)]),Y$Y1,use.Gram=FALSE,max.steps=500)
lambda_Y1=CV$index[which.min(CV$cv)]
有人知道发生了什么事吗?我真的不知道那个错误是什么意思以及我的数据(和/或代码)出了什么问题。
?glmnet
中的文档,它非常明确地说明了需要获取套索所需的alpha
值。此外,关于两种算法之间的相似性,这也可以通过几个小测试示例轻松验证。并不是我不想回答你的问题,但当你自己能够轻松回答时,你应该优先选择自己解决,而不是信任像我这样的随机互联网人士。享受新发现的速度吧! :-) - Steve Lianoglou