用新数据重新训练随机森林
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)
我创建了一个随机森林
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)