programing

R에서 결 측값이있는 랜덤 포레스트를 사용하는 방법은 무엇입니까?

nasanasas 2020. 11. 8. 10:09
반응형

R에서 결 측값이있는 랜덤 포레스트를 사용하는 방법은 무엇입니까?


library(randomForest)
rf.model <- randomForest(WIN ~ ., data = learn)

랜덤 포레스트 모델을 맞추고 싶지만이 오류가 발생합니다.

Error in na.fail.default(list(WIN = c(2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L,  : 
missing values in object

16 개의 숫자 속성으로 데이터 프레임 학습이 있고 WIN은 레벨 0 1 인 요소입니다.


이 질문에 대한 나의 초기 반응은 "모든 사람"이 랜덤 포레스트가 예측 변수의 결 측값을 처리하지 않는다는 것을 알고 있기 때문에 많은 연구 노력을 보여주지 않았다는 것입니다. 그러나 확인하면서 ?randomForest나는 이것에 대해 훨씬 더 분명해질 수 있음을 고백해야합니다.

( 문서에 링크 된 Breiman의 PDF 는 누락 된 값이 단순히 전혀 처리되지 않는다고 명시 적으로 설명합니다.)

공식 문서에서 확인할 수있는 유일한 단서는 na.action매개 변수 의 기본값 이이며 na.fail, 이는 신규 사용자에게는 너무 모호 할 수 있습니다.

어쨌든 예측 변수에 결 측값이있는 경우 (기본적으로) 두 가지 선택 사항이 있습니다.

  1. 다른 도구를 사용하십시오 (결 rpart측값을 잘 처리합니다.)
  2. 결 측값 대치

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

소수의 케이스에만 결 측값이 na.action = na.omit있는 경우 단순히 해당 케이스를 삭제하도록 설정할 수도 있습니다 .

그리고 물론,이 대답은 당신의 문제가 정말로 단순히 결 측값을 가지고 있다는 것입니다.


결 측값이 유익 할 가능성이있는 경우 결 측값을 입력하고 이진 변수 (사용 new.vars<-is.na(your_dataset)) new.var를 추가하고 오류를 낮추는 지 확인하고, 너무 커서 추가 your_dataset할 수없는 경우 단독으로 사용할 수 있습니다. varImpPlot하고 추가 your_dataset에, 당신은 또한 하나의 변수를 추가 할 수 your_dataset있는 수 계산 NA'들new.var <- rowSums(new.vars)

누락 된 변수가 정보를 제공하는 경우 불완전한 대치 절차만으로 인한 모델 오류 증가를 수정할 수 있으므로 이것은 주제를 벗어난 대답이 아닙니다.

누락 된 값은 정보를 제공하고 무작위가 아닌 원인으로 인해 발생하며 특히 사회 실험 설정에서 일반적입니다.


randomForest 패키지의 기반이 되는 Breiman의 임의 포리스트 는 실제로 예측 변수의 결 측값을 처리합니다 . randomForest 패키지에서 다음을 설정할 수 있습니다.

   na.action = na.roughfix

누락 된 값에 대해 중앙값 / 모드를 사용하여 시작하지만 포리스트를 성장시키고 근접성을 계산 한 다음 새로 채워진 값 등을 사용하여 포리스트를 반복하고 구성합니다. 이것은 randomForest 문서 (p10) 에 잘 설명되어 있지 않습니다 . 그것은 단지 상태

.... NAs는 열 중앙값으로 대체됩니다. .... 이것은 임의 포리스트에 의해 결 측값을 대치하는 시작점으로 사용됩니다.

Breiman 홈페이지 에서 좀 더 많은 정보를 찾을 수 있습니다.

missfill = 1,2는 훈련 세트 (1과 같으면)에 대해 누락 된 값을 빠르게 교체하고 더 신중한 교체 (2와 같으면)를 수행합니다.

mfixrep = k with missfill = 2는 느리지 만 일반적으로 훈련 세트에서만 k 반복이있는 근접성을 사용하는 대체를 더 효과적입니다. (nprox> 0 필요).

참고 URL : https://stackoverflow.com/questions/8370455/how-to-use-random-forests-in-r-with-missing-values

반응형