【问题标题】:Difference between Model and $FinalModel for classification in R?R中分类的Model和$FinalModel之间的区别?
【发布时间】:2019-05-29 21:17:23
【问题描述】:

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

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

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

【问题讨论】:

    标签: r machine-learning r-caret


    【解决方案1】:

    来自documentation

    finalModel 使用最佳参数的拟合对象

    大多数时候使用train,您会传递一些不同的值进行超参数估计,以找到实现最佳性能的值(使用trainControl)。

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

    仅供参考caret 还具有变量重要性绘图功能:varImp

    【讨论】:

      猜你喜欢
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多