2014-02-18 3 views
7

glmnet을 사용하여 모델을 만들려고합니다. (현재 람다 값을 찾기 위해 CV를 사용하고 있습니다.) NA/NaN/Inf in foreign function call (arg 5) 오류가 발생합니다. NAs를 사용하여 모든 데이터 요소를 제거하면 명령이 성공적으로 실행되므로 내 데이터 집합의 NA 값과 관련이 있다고 생각합니다.glmnet에서 R 오류 : 외국 함수 호출에서 NA/NaN/Inf

나는 glmnet NA 값을 처리 할 수 ​​있다는 인상을 받았다. 나는 오류가 어디에서 오는 확실하지 않다 :

> head(features.mat) 
6 x 8 sparse Matrix of class "dgCMatrix" 
    a b c e f g h i 
1 1 1 138 NA NA 15 NA . 
4 1 3 171 NA NA 17 NA . 
7 1 1 156 NA NA 5 NA . 
8 1 4 97 NA NA 7 NA . 
9 1 1 219 NA NA 11 NA . 
10 1 . 263 NA NA 20 NA . 
> head(as.factor(tmp[,"outcome"])) 
[1] 0 0 0 0 0 0 
Levels: 0 1 

답변

6

glmnet NA 값을 처리 할 수없는 나타납니다

> res <- cv.glmnet(features.mat, as.factor(tmp[,"outcome"]), family="binomial") 
Error in lognet(x, is.sparse, ix, jx, y, weights, offset, alpha, nobs, : 
    NA/NaN/Inf in foreign function call (arg 5) 

데이터 세트는 다음과 같이 보인다!

+0

이것은 내가 얻은 오류이기도합니다. 어떻게 문제를 해결 했습니까? – user2806363

+1

몇 가지 다른 해결책이 있습니다 : 1) 제가 취한 접근법은 두 번째 컬럼 col_x_is_na를 생성하는 것입니다. 열이 NA 인 경우이 보조 열은 true로 설정됩니다. 이 두 번째 열을 만든 후에는 모든 NA 값을 0으로 설정할 수 있습니다. 보조 플래그 열은 원래 열의 값을 오프셋합니다. 2)이 열을 제외하십시오 3) NA 값이있는 셀을 입력하십시오 4) NA 값을 처리 할 수있는 패키지를 사용하십시오 (예 : ada – mgoldwasser

+16

) NA 값이없는 같은 오류 메시지가 나타납니다 ... – citraL

관련 문제