2014-06-13 3 views
8

8 개의 숫자 열 (예측 변수)과 1 개의 요소 (결과)가있는 데이터 집합에서 임의의 포리스트를 실행하고 있습니다. 데이터 세트에는 1.2M 행이 있습니다. 내가 할 때 :randomForest 및 긴 벡터 문제

randomForest(outcome.f ~ a + b + c + d + e + f + g + h,data=mdata)), 내가 얻을 오류 :

"Error in randomForest.default(m, y, ...) : 
long vectors (argument 26) are not supported in .Fortran" 

는이 문제를 방지 할 수있는 방법이 있습니까? 왜 패키지가 (분명히) 길이 2^31-1의 벡터를 할당하려고하는지 이해할 수 없습니다. Mac OS X 10.9.2와 Intel Core i7 (아키텍처가 중요한 경우)을 사용하고 있습니다.

세션 정보

R version 3.1.0 (2014-04-10) 
Platform: x86_64-apple-darwin13.1.0 (64-bit) 

locale: 
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] randomForest_4.6-7 

loaded via a namespace (and not attached): 
[1] tools_3.1.0 
+0

이것을 알아 냈습니까? (여기 같은 문제 ...) – SOUser

답변

7

훈련 세트에 너무 많은 행이 랜덤 포레스트를 실행하지 마십시오. 여전히 오류가 발생하는 경우

rf1 <- randomForest(Outcome ~ ., train[1:600000,], ntree=500, norm.votes=FALSE, do.trace=10,importance=TRUE) 
rf2 <- randomForest(Outcome ~ ., train[600001:1200000,], ntree=500, norm.votes=FALSE, do.trace=10,importance=TRUE) 
rf.combined <- combine(rf1,rf2) 

, 훈련 세트 (예를 들어 500000 또는 100000)의 크기를 줄이기 위해 노력하고 그들을 결합, RF1, RF2, 그리고 RF3로 나눕니다. 희망이 도움이됩니다.

+0

왜? 좀 더 자세한 정보를 제공해주세요. –

1

또한 트리 수 (n 트리)를 줄일 수도 있습니다.