1

パッケージを使用しcaretて、トレーニング データセットでランダム フォレスト モデルをトレーニングしています。私は 10 倍の交差検証を使用して、オブジェクトを取得しましたrandomForestFit。このオブジェクトを使用して、新しいデータセットを予測したいと思いますtest_data。また、それぞれのクラスの確率を取得したいと考えています。どうすればいいですか?

私はextractProb次のように機能を使用しています:

extractProb(randomForestFit, textX = test_data_predictors, testY = test_data_labels)

しかし、それは私に予期しない結果をもたらしています。

4

1 に答える 1

2

ヘルプ ページの例からextractProb、モデルをリストでラップする必要があります。

knnFit <- train(Species ~ ., data = iris, method = "knn", 
                trControl = trainControl(method = "cv"))

rdaFit <- train(Species ~ ., data = iris, method = "rda", 
                trControl = trainControl(method = "cv"))

predict(knnFit)
predict(knnFit, type = "prob")

bothModels <- list(knn = knnFit,
                   tree = rdaFit)

predict(bothModels)

extractPrediction(bothModels, testX = iris[1:10, -5])
extractProb(bothModels, testX = iris[1:10, -5])

したがって、次のように動作するはずです。

extractProb(list(randomForestFit), textX = test_data_predictors, testY = test_data_labels)

編集:

はい、前処理が使用されます。ドキュメントから:

これらの処理手順は、predict.train、extractPrediction、または extractProbs を使用して生成された予測中に適用されます (詳細は、このドキュメントの後半を参照してください)。object$finalModel オブジェクトを直接使用する予測には、前処理は適用されません。

于 2015-05-29T17:08:52.393 に答える