R 中用于分类的模型和 $FinalModel 之间的区别?

Difference between Model and $FinalModel for classification in R?

目前有这个随机森林模型,只是看看它对糖尿病阳性或糖尿病阴性患者的预测效果如何

模型是使用插入符工作流计算的

在查看变量重要性时,我被告知使用代码 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)

来自documentation:

finalModel A fit object using the best parameters

大多数情况下,train 会为超参数估计传递一些不同的值,以找到实现最佳性能的值(使用 trainControl)。

model_rf 中,您会在 finalModel 下找到使用最佳参数构建的模型。

仅供参考 caret 也有一个用于变量重要性绘图的函数:varImp