Essential for ranger

I trained a random forest using 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' ) 

Now I would like to see the importance of variables. However, none of these works:

 > 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. 

Any idea if and how I can get it?

Thanks.

+6
source share
3 answers

varImp(fit) will get it for you.

To understand this, I looked at names(fit) , which led me to names(fit$modelInfo) - then you will see varImp as one of the parameters.

+4
source

according to @fmalaussena

 set.seed(123) ctrl <- trainControl(method = 'cv', number = 10, classProbs = TRUE, savePredictions = TRUE, verboseIter = TRUE) rfFit <- train(Species ~ ., data = iris, method = "ranger", importance = "permutation", #*** trControl = ctrl, verbose = T) 

You can pass either "permutation" or "impurity" to the importance argument. A description for both values ​​can be found here: http://alexperrier.imtqy.com/jekyll/update/2015/08/27/feature-importance-random-forests-gini-accuracy.html

+1
source

For the ranger package, you can name the importance with

 fit$variable.importance 

As an additional note, you can see all the available outputs for the model using str ()

 str(fit) 
0
source

All Articles