This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.

#install package "fastshap"
 utils::install.packages("fastshap")
Installing package into ‘C:/Users/gredy/AppData/Local/R/win-library/4.3’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.3/fastshap_0.1.0.zip'
Content type 'application/zip' length 986891 bytes (963 KB)
downloaded 963 KB
package ‘fastshap’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\gredy\AppData\Local\Temp\RtmpoRYoRa\downloaded_packages
# utils::contrib.url(repos, "source")
#install.packages("fastshap")
library(fastshap)
head(t1 <- titanic_mice[[1L]])
t1$pclass <- as.ordered(t1$pclass)  # makes more sense as an ordered factor
install.packages("ranger")
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/
Installing package into ‘C:/Users/gredy/AppData/Local/R/win-library/4.3’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.3/ranger_0.16.0.zip'
Content type 'application/zip' length 758581 bytes (740 KB)
downloaded 740 KB
package ‘ranger’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\gredy\AppData\Local\Temp\RtmpoRYoRa\downloaded_packages
library(ranger)
set.seed(2053)  # for reproducibility
(rfo <- ranger(survived ~ ., data = t1, probability = TRUE))
Ranger result

Call:
 ranger(survived ~ ., data = t1, probability = TRUE) 

Type:                             Probability estimation 
Number of trees:                  500 
Sample size:                      1309 
Number of independent variables:  5 
Mtry:                             2 
Target node size:                 10 
Variable importance mode:         none 
Splitrule:                        gini 
OOB prediction error (Brier s.):  0.1337358 
jack.dawson <- data.frame(
  #survived = 0L,  # in case you haven't seen the movie
  pclass = 3L,     # third-class passenger
  age = 20.0,      # twenty years old
  sex = factor("male", levels = c("female", "male")),  # male
  sibsp = 0L,      # no siblings/spouses aboard
  parch = 0L       # no parents/children aboard
)
pfun <- function(object, newdata) {  # prediction wrapper
  unname(predict(object, data = newdata)$predictions[, "yes"])
}
# Compute Jack's predicted likelihood of survival
(jack.prob <- pfun(rfo, newdata = jack.dawson))
[1] 0.1314723
# Average prediction across all passengers
(baseline <- mean(pfun(rfo, newdata = t1)))
[1] 0.3821045
# Difference between Jack and average
(difference <- jack.prob - baseline)
[1] -0.2506322
X <- subset(t1, select = -survived)  # features only
set.seed(2129)  # for reproducibility
(ex.jack <- explain(rfo, X = X, pred_wrapper = pfun, newdata = jack.dawson,
                    nsim = 1000))
          pclass         age        sex       sibsp
[1,] -0.07554003 -0.01240914 -0.1414107 0.001836116
           parch
[1,] -0.01103988
attr(,"baseline")
[1] 0
attr(,"class")
[1] "explain" "matrix"  "array"  
set.seed(2133)  # for reproducibility
(ex.jack.adj <- explain(rfo, X = X, pred_wrapper = pfun, newdata = jack.dawson,
                        nsim = 1000, adjust = TRUE))
         pclass         age        sex       sibsp       parch
[1,] -0.0697378 -0.02354202 -0.1485205 0.003980237 -0.01281207
attr(,"baseline")
[1] 0.3821045
attr(,"class")
[1] "explain" "matrix"  "array"  
# Sanity check
sum(ex.jack.adj)  # should be -0.2484481
[1] -0.2506322
install.packages("shapviz")
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/
Installing package into ‘C:/Users/gredy/AppData/Local/R/win-library/4.3’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.3/shapviz_0.9.2.zip'
Content type 'application/zip' length 1693973 bytes (1.6 MB)
downloaded 1.6 MB
package ‘shapviz’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\gredy\AppData\Local\Temp\RtmpoRYoRa\downloaded_packages
library(shapviz)
Registered S3 method overwritten by 'data.table':
  method           from
  print.data.table     
shv <- shapviz(ex.jack.adj, X = jack.dawson, baseline = baseline)
sv_waterfall(shv)

sv_force(shv)

# global
set.seed(2224)  # for reproducibility
ex.t1 <- explain(rfo, X = X, pred_wrapper = pfun, nsim = 100, adjust = TRUE,
                 shap_only = FALSE)
tibble::as_tibble(ex.t1$shapley_values)
#means graphs
shv.global <- shapviz(ex.t1)
sv_importance(shv)  

# PARTIAL DEPENDENCE PLOT
sv_dependence(shv.global, v = "age")

#fin

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UgZXhlY3V0ZSBjb2RlIHdpdGhpbiB0aGUgbm90ZWJvb2ssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlLiANCg0KVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuayBvciBieSBwbGFjaW5nIHlvdXIgY3Vyc29yIGluc2lkZSBpdCBhbmQgcHJlc3NpbmcgKkN0cmwrU2hpZnQrRW50ZXIqLiANCg0KYGBge3J9DQojaW5zdGFsbCBwYWNrYWdlICJmYXN0c2hhcCINCiB1dGlsczo6aW5zdGFsbC5wYWNrYWdlcygiZmFzdHNoYXAiKQ0KIyB1dGlsczo6Y29udHJpYi51cmwocmVwb3MsICJzb3VyY2UiKQ0KI2luc3RhbGwucGFja2FnZXMoImZhc3RzaGFwIikNCmxpYnJhcnkoZmFzdHNoYXApDQoNCmBgYA0KYGBge3J9DQpgYGANCg0KDQpgYGB7cn0NCmhlYWQodDEgPC0gdGl0YW5pY19taWNlW1sxTF1dKQ0KdDEkcGNsYXNzIDwtIGFzLm9yZGVyZWQodDEkcGNsYXNzKSAgIyBtYWtlcyBtb3JlIHNlbnNlIGFzIGFuIG9yZGVyZWQgZmFjdG9yDQppbnN0YWxsLnBhY2thZ2VzKCJyYW5nZXIiKQ0KbGlicmFyeShyYW5nZXIpDQpgYGANCmBgYHtyfQ0Kc2V0LnNlZWQoMjA1MykgICMgZm9yIHJlcHJvZHVjaWJpbGl0eQ0KKHJmbyA8LSByYW5nZXIoc3Vydml2ZWQgfiAuLCBkYXRhID0gdDEsIHByb2JhYmlsaXR5ID0gVFJVRSkpDQoNCmBgYA0KDQpgYGB7cn0NCmphY2suZGF3c29uIDwtIGRhdGEuZnJhbWUoDQogICNzdXJ2aXZlZCA9IDBMLCAgIyBpbiBjYXNlIHlvdSBoYXZlbid0IHNlZW4gdGhlIG1vdmllDQogIHBjbGFzcyA9IDNMLCAgICAgIyB0aGlyZC1jbGFzcyBwYXNzZW5nZXINCiAgYWdlID0gMjAuMCwgICAgICAjIHR3ZW50eSB5ZWFycyBvbGQNCiAgc2V4ID0gZmFjdG9yKCJtYWxlIiwgbGV2ZWxzID0gYygiZmVtYWxlIiwgIm1hbGUiKSksICAjIG1hbGUNCiAgc2lic3AgPSAwTCwgICAgICAjIG5vIHNpYmxpbmdzL3Nwb3VzZXMgYWJvYXJkDQogIHBhcmNoID0gMEwgICAgICAgIyBubyBwYXJlbnRzL2NoaWxkcmVuIGFib2FyZA0KKQ0KYGBgDQoNCmBgYHtyfQ0KcGZ1biA8LSBmdW5jdGlvbihvYmplY3QsIG5ld2RhdGEpIHsgICMgcHJlZGljdGlvbiB3cmFwcGVyDQogIHVubmFtZShwcmVkaWN0KG9iamVjdCwgZGF0YSA9IG5ld2RhdGEpJHByZWRpY3Rpb25zWywgInllcyJdKQ0KfQ0KYGBgDQoNCmBgYHtyfQ0KIyBDb21wdXRlIEphY2sncyBwcmVkaWN0ZWQgbGlrZWxpaG9vZCBvZiBzdXJ2aXZhbA0KKGphY2sucHJvYiA8LSBwZnVuKHJmbywgbmV3ZGF0YSA9IGphY2suZGF3c29uKSkNCg0KYGBgDQpgYGB7cn0NCiMgQXZlcmFnZSBwcmVkaWN0aW9uIGFjcm9zcyBhbGwgcGFzc2VuZ2Vycw0KKGJhc2VsaW5lIDwtIG1lYW4ocGZ1bihyZm8sIG5ld2RhdGEgPSB0MSkpKQ0KYGBgDQpgYGB7cn0NCiMgRGlmZmVyZW5jZSBiZXR3ZWVuIEphY2sgYW5kIGF2ZXJhZ2UNCihkaWZmZXJlbmNlIDwtIGphY2sucHJvYiAtIGJhc2VsaW5lKQ0KDQpgYGANCmBgYHtyfQ0KWCA8LSBzdWJzZXQodDEsIHNlbGVjdCA9IC1zdXJ2aXZlZCkgICMgZmVhdHVyZXMgb25seQ0Kc2V0LnNlZWQoMjEyOSkgICMgZm9yIHJlcHJvZHVjaWJpbGl0eQ0KKGV4LmphY2sgPC0gZXhwbGFpbihyZm8sIFggPSBYLCBwcmVkX3dyYXBwZXIgPSBwZnVuLCBuZXdkYXRhID0gamFjay5kYXdzb24sDQogICAgICAgICAgICAgICAgICAgIG5zaW0gPSAxMDAwKSkNCmBgYA0KYGBge3J9DQpzZXQuc2VlZCgyMTMzKSAgIyBmb3IgcmVwcm9kdWNpYmlsaXR5DQooZXguamFjay5hZGogPC0gZXhwbGFpbihyZm8sIFggPSBYLCBwcmVkX3dyYXBwZXIgPSBwZnVuLCBuZXdkYXRhID0gamFjay5kYXdzb24sDQogICAgICAgICAgICAgICAgICAgICAgICBuc2ltID0gMTAwMCwgYWRqdXN0ID0gVFJVRSkpDQpgYGANCmBgYHtyfQ0KIyBTYW5pdHkgY2hlY2sNCnN1bShleC5qYWNrLmFkaikgICMgc2hvdWxkIGJlIC0wLjI0ODQ0ODENCmluc3RhbGwucGFja2FnZXMoInNoYXB2aXoiKQ0KbGlicmFyeShzaGFwdml6KQ0Kc2h2IDwtIHNoYXB2aXooZXguamFjay5hZGosIFggPSBqYWNrLmRhd3NvbiwgYmFzZWxpbmUgPSBiYXNlbGluZSkNCnN2X3dhdGVyZmFsbChzaHYpDQpzdl9mb3JjZShzaHYpDQpgYGANCg0KYGBge3J9DQojIGdsb2JhbA0Kc2V0LnNlZWQoMjIyNCkgICMgZm9yIHJlcHJvZHVjaWJpbGl0eQ0KZXgudDEgPC0gZXhwbGFpbihyZm8sIFggPSBYLCBwcmVkX3dyYXBwZXIgPSBwZnVuLCBuc2ltID0gMTAwLCBhZGp1c3QgPSBUUlVFLA0KICAgICAgICAgICAgICAgICBzaGFwX29ubHkgPSBGQUxTRSkNCnRpYmJsZTo6YXNfdGliYmxlKGV4LnQxJHNoYXBsZXlfdmFsdWVzKQ0KDQpgYGANCmBgYHtyfQ0KI21lYW5zIGdyYXBocw0Kc2h2Lmdsb2JhbCA8LSBzaGFwdml6KGV4LnQxKQ0Kc3ZfaW1wb3J0YW5jZShzaHYpICANCmBgYA0KYGBge3J9DQojIFBBUlRJQUwgREVQRU5ERU5DRSBQTE9UDQpzdl9kZXBlbmRlbmNlKHNodi5nbG9iYWwsIHYgPSAiYWdlIikNCmBgYA0KI2Zpbg0KDQo=