我有一个关于 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)]
有人知道发生了什么事吗?我真的不知道那个错误是什么意思,也不知道我的数据(和/或代码)有什么问题。
最佳答案
我遇到了同样的错误,问题(至少在我的情况下)是我的数据矩阵的两列相等。看来 lars 处理得不好。只过滤相关性非常高的列。
关于r - R 中的 cv.lars 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15030634/