Trenowałem losowy las przy użyciu caret
+ ranger
.Zmienne znaczenie ze strażnikiem
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'
)
Teraz chciałbym zobaczyć znaczenie zmiennych. Jednak żadna z tych prac:
> 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.
Każdy pomysł, jeśli & jak mogę ją dostać?
Dzięki.
Tak, znalazłem to również w międzyczasie, nurkując w dokumencie "opiekuna". Dziękujemy za użyteczny sposób wyszukiwania informacji! Okazuje się, że 'varImp()' jest sposobem na uzyskanie zmiennej ważności dla większości modeli wyszkolonych za pomocą 'train()'. Uwaga dla przyszłych użytkowników: nie jestem w 100% pewny i nie mam czasu na sprawdzenie, ale wydaje się, że konieczne jest posiadanie 'important = 'impurity'' (Myślę, że' important =' permutation'' też by działało) przekazane jako parametr w 'train()', aby móc używać 'varImp()'. –
Kolejna uwaga: wydaje się, że jeśli wytrenujesz swój model za pomocą 'ranger', ale bez' caret', wtedy 'important (fit)' będzie właściwą metodą uzyskania zmiennej ważności. Jak wyżej, myślę, że parametr 'important = 'impurity'' (lub" permutation ") musi być w' train() ' –
Dziwne, że nie działa dla mnie. Brak dostępnych wartości ważności ... hmmm –