2

ランダム フォレストをトレーニングしました。

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

新しいオブジェクトの y を予測したいときは、

y_pred <- predict(model, xnew)

既存のフォレスト (モデル) に基づいて、新しいオブジェクト (xnew) とトレーニング セット (x) の間の近接性を計算するにはどうすればよいですか? 予測関数の近接オプションは、新しいオブジェクト (xnew) 間の近接のみを提供します。結合されたデータセット (x と xnew) に対して教師なしで randomForest を再度実行して近接性を取得することもできますが、フォレストの再構築を回避し、代わりに既存のものを使用する方法が必要だと思います。

ありがとう!キリアン

4

1 に答える 1

5

あなたが望むのは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しかし、そうすれば、呼び出しの前にテスト ケースを用意する必要はありません。

その場合、呼び出しで使用keep.forest = TRUEし、randomForestもちろんproximity = TRUE呼び出し時に設定する必要がありますpredict

于 2011-12-16T19:36:58.427 に答える