我正在使用caret
包在训练数据集上训练随机森林模型。我使用了 10 倍交叉验证来获得一个对象 say randomForestFit
。现在我想用这个对象来预测新的数据集说test_data
。我还想获得各自的班级概率。我该怎么做?
我一直在使用extractProb
如下功能:
extractProb(randomForestFit, textX = test_data_predictors, testY = test_data_labels)
但它给了我意想不到的结果。
我正在使用caret
包在训练数据集上训练随机森林模型。我使用了 10 倍交叉验证来获得一个对象 say randomForestFit
。现在我想用这个对象来预测新的数据集说test_data
。我还想获得各自的班级概率。我该怎么做?
我一直在使用extractProb
如下功能:
extractProb(randomForestFit, textX = test_data_predictors, testY = test_data_labels)
但它给了我意想不到的结果。
从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 对象的预测。