2011-08-15 64 views
1

我正在尋找一些幫助,找出什麼是我的嘗試,以適應正則化邏輯迴歸(特別是找到使用cv.glmnet最佳lambda值)的錯誤。R glmnet錯誤二進制邏輯

運行下面的命令:

RegLR_CV<-cv.glmnet(x=train.sub.clean[,-c(431)], 
        y=as.factor(train.sub$finalAttrite), 
        family="binomial") 

其中表train.sub.clean都是數字,並曾所有零級方差的變量除去(使用caret包)。

該函數運行一段時間後會產生以下錯誤。任何人都可以推薦我應該尋找的故障排除?它必須是我的數據集,因爲包中的玩具示例運行良好。

Error:

Error in as.matrix(cbind2(1, newx) %*% nbeta) : error in evaluating the argument 'x' in selecting a method for function 'as.matrix': Error in t(.Call(Csparse_dense_crossprod, y, t(x))) : error in evaluating the argument 'x' in selecting a method for function 't': Error: invalid class 'NA' to dup_mMatrix_as_dgeMatrix

R: ř版本2.13.0(2011-04-13) 平臺:x86_64的-PC-的mingw32/64(64位)

glmnet:1.7

+0

您應該升級到當前版本R和如果這不起作用,請發佈sessionInfo()的結果以及重新創建問題的一些數據。 –

+2

如果您明確將'train.sub.clean [, - c(431)]'轉換爲矩陣,會發生什麼?你能確認那裏沒有「NA」嗎?此外,你正在爲邏輯迴歸做交叉驗證。難道是你的任何一個結果班的人數極少?這可能會導致其中一個子集不包含其中一個值。 –

回答

-1

嘗試做: cv.glmnet(x = as.matrix(train.sub.clean [, - c(431)]),...) 並試一試

+0

但這是答案。嘗試需要在評論中 –