В настоящее время есть эта модель случайного леса, просто посмотрите, насколько хорошо она предсказывает людей с диабетом положительным или отрицательным диабетом.
Модель рассчитывается с использованием рабочего процесса каретки
когда я смотрел на важность переменной, мне сказали использовать код
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)





Из документация:
finalModel A fit object using the best parameters
В большинстве случаев с train вы передаете несколько разных значений для оценки гиперпараметров, чтобы найти значения, которые обеспечивают наилучшую производительность (с использованием trainControl).
Внутри model_rf вы найдете под finalModel модель, построенную с лучшими параметрами.
FYI caret также имеет функцию для построения графика важности переменных: varImp.