## -----------------------------------------------------------------------------
library("pre")

## -----------------------------------------------------------------------------
airq <- na.omit(airquality)
set.seed(42)
airq.ens <- pre(Ozone ~ ., data = airq)
airq.ens ## equivalent to print(airq.ens)

## -----------------------------------------------------------------------------
airq.shaps <- shap(airq.ens, newdata = airq)

## -----------------------------------------------------------------------------
str(airq.shaps)

## -----------------------------------------------------------------------------
library("shapviz")
baseline <- mean(predict(airq.ens, newdata = airq))
sv <- shapviz(object = airq.shaps$marginal, 
              X = airq, 
              baseline = baseline)

## ----fig.width=5.5,fig.height=4-----------------------------------------------
sv_importance(sv, kind = "bee")

## -----------------------------------------------------------------------------
sv_waterfall(sv, row_id = 1)

## -----------------------------------------------------------------------------
airq.shaps <- shap(airq.ens, newdata = airq, interactions = TRUE)
str(airq.shaps)

## -----------------------------------------------------------------------------
airq.shaps$interactions[1, , ]

## -----------------------------------------------------------------------------
rowSums(airq.shaps$interactions[1, , ])
colSums(airq.shaps$interactions[1, , ])
airq.shaps$marginal[1, ]

## ----fig.width=7,fig.height=4-------------------------------------------------
baseline <- mean(predict(airq.ens, newdata = airq))
sv_int <- shapviz(object = airq.shaps$marginal, 
                  X = airq, 
                  baseline = baseline,
                  S_inter = airq.shaps$interactions)
sv_interaction(sv_int)

## ----echo=FALSE---------------------------------------------------------------
sessionInfo()

