Я тренировал случайный лес, используя caret
+ ranger
.Важное значение с рейнджером
fit <- train(
y ~ x1 + x2
,data = total_set
,method = "ranger"
,trControl = trainControl(method="cv", number = 5, allowParallel = TRUE, verbose = TRUE)
,tuneGrid = expand.grid(mtry = c(4,5,6))
,importance = 'impurity'
)
Теперь я хотел бы увидеть важность переменных. Тем не менее, ни одна из этих работ:
> importance(fit)
Error in UseMethod("importance") : no applicable method for 'importance' applied to an object of class "c('train', 'train.formula')"
> fit$variable.importance
NULL
> fit$importance
NULL
> fit
Random Forest
217380 samples
32 predictors
No pre-processing
Resampling: Cross-Validated (5 fold)
Summary of sample sizes: 173904, 173904, 173904, 173904, 173904
Resampling results across tuning parameters:
mtry RMSE Rsquared
4 0.03640464 0.5378731
5 0.03645528 0.5366478
6 0.03651451 0.5352838
RMSE was used to select the optimal model using the smallest value.
The final value used for the model was mtry = 4.
Любая идея, если &, как я могу его получить?
Спасибо.
Да, я тоже нашел это, погрузившись в документ 'caret'. Спасибо за этот полезный метод поиска информации! Оказывается, «varImp()» - это способ получить переменную значимость для большинства моделей, обучаемых с помощью «train()». Обратите внимание на будущих пользователей: я не на 100% уверен, и у меня нет времени проверять, но, похоже, необходимо иметь значение 'important = 'прим.' (Я думаю,' important = 'перестановка' будет работать тоже) передается как параметр в 'train()', чтобы иметь возможность использовать varImp() '. –
Другое примечание: кажется, что если вы тренируете свою модель с помощью «рейнджера», но без «каретки», то «важность (соответствие)» будет правильным способом получения переменной важности. Как и выше, я думаю, что параметр 'важность = 'примесь' (или 'перестановка') должен находиться в' train() ' –
Странно, это не работает для меня. Нет значений важности ... hmmm –