2011-12-03 4 views
61

나는 임의의 숲 모델에 맞게 싶지만, 내가누락 (NA) 값이있는 R에서 임의의 포리스트를 만드는 방법은 무엇입니까?

library(randomForest) 
cars$speed[1] <- NA # to simulate missing value 
model <- randomForest(speed ~., data=cars) 

를 호출 할 때 다음과 같은 오류를 얻을

Error in na.fail.default(list(speed = c(NA, 4, 7, 7, 8, 9, 10, 10, 10, : 
    missing values in object 
+0

현재 상태에서이 질문은 대답하기가 어려울 것입니다. 몇 가지 샘플 데이터로 질문을 업데이트 할 수 있습니까? – Chase

+1

@ MattO'Brien 질문의 품질은 조회수에 근거하여 논의되는 것이지 질문 자체의 장점에 관한 것이 아닙니다. 그리고 그 대답은 @ Joran이 무엇이 질문되고 있는지를 알아 내고 질문자의 문제에 대해 좋은 해결책으로 보이는 것을 제공했기 때문에 아무런 문제가 없었기 때문입니다. – user7610

답변

101

이 질문에 대한 나의 첫 반응은 훨씬 연구를 보이지 않았다이었다 "모든 사람"은 임의의 포리스트가 예측 자의 누락 된 값을 처리하지 않는다는 것을 알고 있기 때문에 노력합니다. 그러나 ?randomForest을 검사 할 때 나는 이것에 대해 훨씬 더 명백 할 수 있다고 고백해야한다.

(Breiman의 PDF, 비록 명시 적으로 누락 된 값이 단순히 전혀 처리되지 않는 것을 말하는가 문서에 연결.)

은 내가 볼 수있는 공식 문서에서 유일하게 확실한 단서였습니다 기본 값 na.action 매개 변수는 na.fail이며 새로운 사용자에게는 너무 모호 할 수 있습니다. 당신의 예측이 누락 된 값이있는 경우 어떤 경우

, 당신은 (기본적으로) 두 가지 선택 :

  1. 를 사용하여 다른 도구 (rpart 핸들이 잘 값이 없습니다.)
  2. 전가 누락 된 값

randomForest 패키지에는 당연히 이것을 수행하는 기능이 있습니다 (rfImpute). ?rfImpute에있는 문서는 사용법의 기본 예를 통해 실행됩니다.

값이 누락 된 사례가 적은 경우 na.action = na.omit을 설정하여 해당 사례를 간단히 삭제할 수도 있습니다.

물론이 대답은 문제가 실제로 가치가 누락 된 것 같아요.

+0

OP 수단의 첫 번째 인수에서 'WIN ~.'이 무엇인지 알 수 있습니까?이 질문을하는 가장 좋은 장소는 아니지만, 당신이 알고 있는지 궁금해하고있었습니다. 감사. –

+4

@ user273158 그것은'formula' 인자를 가진'? randomForest'에 문서화 된 모델 수식입니다. R에게 응답 변수로 'WIN'을 사용하도록 지시하고'.'는 "데이터 프레임의 다른 모든 변수"를 의미하는 속기입니다. 따라서 R이 응답 변수로 'WIN'을 사용하고 다른 모든 변수는 예측 변수라고합니다. 자세한 내용은'? formula'를보십시오. – joran

3

누락 된 값은 다음 값 누락 inpute하고 오류를 낮추는 경우 new.var는 다음 사용할 수 your_dataset에 추가 너무 큰 세트 인 경우, (new.vars<-is.na(your_dataset)으로) 추가 이진 변수를 추가하고 확인할 수 있습니다 유익한 가능성이있는 경우 혼자, varImpPlot와 significiant 변수를 선택하고 your_dataset에 추가, 당신은 또한없는 변수 정보 회계있는 경우가 아니라 오프 topick 답변입니다 NAnew.var <- rowSums(new.vars)

의 수를 계산하는 your_dataset에 하나의 변수를 추가 할 수 있습니다 왜냐하면 불완전한 대체 절차만으로 모델 오류의 증가를 바로 잡을 수 있기 때문이다.

누락 된 값은 유익하지 않습니다. 그 이유는 누락 된 값이 비 임의 원인, 즉 사회 실험 설정에서 일반적으로 흔히 발생하기 때문입니다.

관련 문제