How variable importance works in vip
develThe vip package quantifies and visualizes which features drive a fitted model's predictions. It provides two primary interfaces:
vi(): Returns a tidy data frame (class"vi") containing importance scores. This is useful for post-processing or custom plotting.vip(): Generates a variable importance plot using base R graphics via thetinyplotpackage.
Importance Methods
method = "model": Uses native importance measures provided by the model class (e.g., impurity inranger).method = "permute": Model-agnostic permutation importance. Requires a user-suppliedpred_wrapper.method = "shap": Shapley-based importance.method = "firm": Variance-based importance.
Model Compatibility
vi() and vip() work out-of-the-box with many model classes including randomForest, ranger, gbm, xgboost, lightgbm, glmnet, caret, tidymodels, and mlr3. For any other model, you can use model-agnostic methods by providing a prediction wrapper function.
library(vip)
# Example: Model-specific importance
rfo <- ranger(y ~ ., data = trn, importance = "impurity")
vi(rfo) # Returns data frame of scores
vip(rfo) # Returns variable importance plot