2011-12-16 4 views
2

에 대한 근접 나는 임의의 숲 훈련 이미 존재하는 포레스트 (모델)에 기반한 새로운 객체 (xnew)와 트레이닝 세트 (x)? 예측 함수의 proximity 옵션은 새 객체 (xnew) 사이의 프록시 만 제공합니다. 근접 데이터를 얻기 위해 결합 된 데이터 세트 (x와 xnew)에 대해 randomForest를 다시 감독하지 않아도되지만, 이미 기존의 것을 사용하여 다시 포리스트를 구축하는 것을 피할 수있는 방법이 있어야한다고 생각합니다.R 랜덤 포레스트는 : 새로운 객체

감사합니다. 킬리안

답변

4

나는 당신이 원하는 것은 randomForest 전화 자체가, 이런 일에 시험 관측을 지정하는 것입니다 믿습니다

set.seed(71) 
ind <- sample(1:150,140,replace = FALSE) 
train <- iris[ind,] 
test <- iris[-ind,] 

iris.rf1 <- randomForest(x = train[,1:4], 
         y = train[,5], 
         xtest = test[,1:4], 
         ytest = test[,5], 
         importance=TRUE, 
         proximity=TRUE) 

dim(iris.rf1$test$prox) 
[1] 10 150 

그래서 당신에게 모든 150

에 열 테스트 케이스의 근접을 제공합니다

유일한 옵션은 새 사례 predict을 호출하는 것입니다. 원래의 교육 사례에 rbind이 적용되었습니다. 그러나 그런 식으로 randomForest 호출로 테스트 케이스를 앞에 놓을 필요는 없습니다.

이 경우 을 randomForest 전화에서 사용하고 predict으로 전화 할 때 proximity = TRUE을 설정하는 것이 좋습니다.

+0

고맙습니다! 새로운 케이스를 트레이닝 세트에'rbind '하려면 나를 위해 잘 작동합니다. – Kilian