Ho addestrato una foresta casuale utilizzando caret
+ ranger
.Importanza variabile con il 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'
)
Ora mi piacerebbe vedere l'importanza delle variabili. Tuttavia, nessuno di questi lavori:
> 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.
Qualsiasi idea se & come posso farlo?
Grazie.
Sì, l'ho trovato anche nel frattempo immergendolo nel doc di '' caret''. Grazie per questo metodo utile per trovare informazioni, però! Si scopre che 'varImp()' è il modo per ottenere importanza variabile per la maggior parte dei modelli formati con 'train()' di caret. Nota per gli utenti futuri: non sono sicuro al 100% e non ho il tempo di controllare, ma sembra che sia necessario avere 'importanza =' impurità '' (immagino che 'important = 'permutation'' possa funzionare anche) passato come parametro in 'train()' per poter usare 'varImp()'. –
Un'altra nota: sembra che se alleni il tuo modello con 'ranger' ma senza' caret', quindi 'importance (fit) 'sarebbe il modo giusto per ottenere importanza variabile. Come sopra, penso che il parametro 'important = 'impurity'' (o' permutation ') debba essere in' train() ' –
Strano che non funzioni per me. Nessun valore di importanza disponibile ... hmmm –