当前获得了这个随机森林模型,只是看到它对糖尿病阳性或糖尿病阴性的预测有多好
使用插入符号工作流计算模型
当我查看变量的重要性时,我被告知要使用代码
randomForest::importance(model$finalModel)
$ finalModel的用途是什么?与原始模型相比,$ finalModel是什么?不仅仅是查看原始模型是否作为参数传递,而是查看变量重要性?
以下示例:
library(tidyverse)
library(mlbench)
library(caret)
library(car)
library(glmnet)
library(rpart.plot)
library(rpart)
data("PimaIndiansDiabetes2")
PimaIndiansDiabetes2 <- na.omit(PimaIndiansDiabetes2)
set.seed(123)
training.samples <- PimaIndiansDiabetes2$diabetes %>% createDataPartition(p = 0.8, list = FALSE)
train.data <- PimaIndiansDiabetes2[training.samples,]
test.data <- PimaIndiansDiabetes2[-training.samples,]
model_rf <- caret::train(
diabetes ~.,
data = train.data,
method = "rf",
trControl = trainControl("cv", number = 10),
importance = TRUE)
model_rf
model_rf$bestTune
model_rf$finalModel
# variable importance here
importance(model_rf$finalModel)
答案 0 :(得分:1)
finalModel使用最佳参数的适合对象
在大多数情况下,train
会传递一些不同的值用于超参数估计,以找到实现最佳性能的值(使用trainControl
)。
在model_rf
内部,您可以在finalModel
下找到使用最佳参数构建的模型。
FYI caret
还具有用于变量重要性绘图的功能:varImp。