R,Caret:保存/加载并行随机森林失败

时间:2014-12-15 13:59:46

标签: r load random-forest predict r-caret

在使用插入符号(R)中的并行随机林时遇到了一个问题。我看到他们是多个问题似乎处理同样的问题,在阅读完答案之后,我仍然坚持同样的问题。

我有一个数据集,用于训练这样的模型:

rfParam <- expand.grid(mtry = 5)
parRFModel <- train(
    form = Class~.,
    data = datasetShorted,
    method="parRF",
    tuneGrid = rfParam
    )

我可以使用此模型使用以下命令进行预测:

predictions <- extractPrediction(list(parRFModel), testX = datasetShorted[1:10,2:numFeatures])

然后我保存模型:

save(parRFModel, file="parRFModel-MTry5.RData")

问题是当我重新启动R,重新加载所有库然后执行

load("parRFModel-MTry5.RData")

模型已正确加载,但我无法预测:

> parRFModel
Parallel Random Forest 

40794 samples
 1947 predictors
    8 classes: '0', '1', '2', '3', '4', '5', '6', '7' 

No pre-processing
Resampling: Bootstrapped (25 reps) 

Summary of sample sizes: 40794, 40794, 40794, 40794, 40794, 40794, ... 

Resampling results

  Accuracy   Kappa     Accuracy SD  Kappa SD 
  0.6877108  0.477487  0.004078363  0.0072271

Tuning parameter 'mtry' was held constant at a value of 5

> predictions <- extractPrediction(list(parRFModel), testX = datasetShorted[1:10,2:numFeatures])
Error in UseMethod("predict") : 
  no applicable method for 'predict' applied to an object of class "randomForest"
> class(parRFModel)
[1] "train"         "train.formula"

你有什么想法,为什么会这样?保存/加载功能有问题吗?非常感谢你!

1 个答案:

答案 0 :(得分:1)

只是为了明确答案,这对下一位观众来说更容易:

在尝试使用library(randomForest)方法之前,请务必致电predict。这将确保加载randomForest包,因此为类predict的对象定义了randomForest方法。