2011-12-16 9 views
2

私はランダムフォレスト訓練:私は新しいオブジェクトのためのyを予測する場合Rランダムフォレスト:新しいオブジェクトのための近接

model <- randomForest(x, y, proximity=TRUE) 

、私は間の近さを計算するにはどうすればよい

y_pred <- predict(model, xnew) 

を使用既存のフォレスト(モデル)に基づいた新しいオブジェクト(xnew)とトレーニングセット(x) 予測関数の近接オプションは、新しいオブジェクト(xnew)間のプロキシミティのみを与えます。近接データを取得するために、組み合わされたデータセット(xとxnew)でrandomForestを再度監視することはできますが、既存のものを使用して再度フォレストを構築するのを避ける方法が必要だと思います。

ありがとうございます!私はあなたが何をしたいと考えてい キリアン

答えて

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 

は、だから、10のテストケースからのすべての150

にあなたの近接性を提供します

他の唯一のオプションは、新しいケースのpredictに電話することです。rbindは元のトレーニングケースに適用されていると思います。しかし、そのようにすれば、randomForestコールでテストケースを手前にする必要はありません。その場合

は、あなたが randomForest呼び出しで keep.forest = TRUEを使用したいとあなたが predictを呼び出すときはもちろん proximity = TRUEを設定します。

+0

ありがとうございました!新しいケースをトレーニングセットに 'rbind'すると、私のためにうまくいきます。 – Kilian

関連する問題