用新数据重新训练随机森林

Retrain Random Forest with new Data

我创建了一个随机森林

library(randomForest)
...
rf_default <- train(Species~., 
                      data=test, 
                      method='rf', #random forest
                      metric='Accuracy', 
                      tuneGrid=tunegrid, 
                      ntree=100,
                      trControl=control)

rf_default$finalModel

rf_default$finalModel 现在包含具有最佳参数的模型。现在,我想用新数据的最佳参数重新训练模型(类似于 scikit 中的 *.fit())。我该怎么做?

编辑:

我遵循了描述的方法 here:我尝试使用 CV 来查找超参数,然后,我想使用它们在完整的训练集上创建模型

正如@missuse 所说,rf_default$finalModel 只是建立在您放入 train 的整个数据集之上,与使用的重采样方法无关。

library(caret)
train <- iris[ind,]
test <- iris[-ind,]
control <- trainControl(method = "cv",number = 10)
tunegrid <- expand.grid(mtry=2:(ncol(iris)-1))
rf_default <- train(Species~., 
                data=train, 
                method='rf', #random forest
                metric='Accuracy', 
                tuneGrid=tunegrid, 
                ntree=100,
                trControl=control)

rf_default$finalModel
#assessing the accuracy against the test set
confusionMatrix(predict(rf_default,test[,-5]),test$Species)

在上面的代码中,rf_default$finalModel 在整个数据集 train 上进行了训练。 如果你想在整个 iris 数据集上拟合另一个模型,使用在之前的模型调整中找到的最佳超参数,你可以这样做:

rf_whole <- train(Species~., 
               data=iris, 
               method='rf', #random forest
               metric='Accuracy', 
               tuneGrid=rf_default$bestTune, 
               ntree=100,
               trControl=control)