Comments (1)
Hello. Yes and no.
- "No": shapviz itself does not calculate SHAP values, it just plots them.
- "Yes": You can use the "treeshap" package on https://github.com/ModelOriented/treeshap to calculate SHAP values and then plot them with "shapviz". It includes a wrapper for treeshap results. The problem: Random forests shine when there are many trees and very deep trees. It is computationally extremely demanding to calculate TreeSHAP in such a case.
- "Yes": An alternative would be to use model-agnostic KernelSHAP. We have a quite fresh R implementation of it, see the code below.
# Approach 1: Kernel SHAP
library(ranger)
library(kernelshap)
library(shapviz)
library(ggplot2)
library(ggpubr)
x <- c("carat", "clarity", "color", "cut")
rf <- ranger(reformulate(x, "price"), data = diamonds)
X <- diamonds[seq(1, nrow(diamonds), 50), x]
background_data <- diamonds[seq(1, nrow(diamonds), 500), ]
# 2 minutes to decompose 1000 predictions
system.time(
ks <- kernelshap(rf, X = X, bg_X = background_data)
)
# Visualization
sv <- shapviz(ks)
sv_importance(sv)
deps <- lapply(x, function(v) sv_dependence(sv, v, color_var = "auto"))
ggarrange(plotlist = deps, ncol = 2, nrow = 2)
# Approach 2: TreeSHAP
# devtools::install_github("ModelOriented/treeshap")
from shapviz.
Related Issues (20)
- maintenance: changes in package_version() HOT 1
- Cannot set x-axis limits with beeswarm plot when data exist outside of specified xlims HOT 3
- how to get Shap interactions for LightGBM? HOT 6
- Odd findings in sv_importance() using beeswarm. HOT 14
- Stacked/dodged bar plots? HOT 1
- Controlling threads HOT 2
- Individual baselines HOT 1
- Treatment of categorical features in `potential_interactions()`: suggestion to use R squared instead of squared correlation HOT 15
- Interaction importance HOT 4
- Not compatible with mlr3 package and DALEXtra package HOT 6
- Custom color palettes for the beeswarm plot HOT 1
- ENH Allow sv_importance() and sv_interaction() to be unsorted
- Baseline-value question HOT 2
- Multiclass/Multioutput/multiple models HOT 1
- Multiple plots: align SHAP axis limits
- issue with sv_importance function HOT 4
- Idea: sv_dependence2D() HOT 1
- Multioutput model names HOT 1
- Best practice for visualizing tidymodels last_fit() object HOT 6
- Cannot rename colnames/dimnames in post-processing HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from shapviz.