Разница между Model и $ FinalModel для классификации в R? - PullRequest
0 голосов
/ 03 января 2019

В настоящее время получена эта модель случайного леса, просто видя, насколько хорошо она предсказывает людей с положительным или отрицательным диабетом

Модель рассчитана с использованием рабочего процесса каретки

при рассмотрении важности переменных мне сказали использовать код 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)

1 Ответ

0 голосов
/ 03 января 2019

Из документации :

finalModel Подходящий объект с наилучшими параметрами

В большинстве случаев с train вы передаете некоторыеразличные значения для оценки гиперпараметров, чтобы найти значения, которые достигают наилучшей производительности (используя trainControl).

Внутри model_rf вы найдете под finalModel модель, построенную с лучшими параметрами.

FYI caret также имеет функцию для построения графиков переменной важности: varImp .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...