context("Check plot() function for broken object")
# preparation
library(DALEX)
set.seed(1313)
# example with interaction
# classification for HR data
m_rf_class <- randomForest::randomForest(status ~ . , data = HR)
new_observation <- HRTest[1,]
exp_rf_class <- explain(m_rf_class,
data = HR[1:1000,1:5],
y = HR$status[1:1000])
bd_rf_class <- local_attributions(exp_rf_class,
new_observation)
shap_rf_class <- shap(exp_rf_class,
new_observation)
bd_rf_class_distr <- local_attributions(exp_rf_class,
new_observation,
keep_distributions = TRUE)
# example for regression - apartment prices
# here we do not have intreactions
m_rf_reg <- randomForest::randomForest(m2.price ~ . , data = apartments)
exp_rf_reg <- explain(m_rf_reg,
data = apartmentsTest[1:1000,2:6],
y = apartmentsTest$m2.price[1:1000])
bd_rf_reg <- local_attributions(exp_rf_reg,
apartmentsTest[1,])
bd_rf_reg_distr <- local_attributions(exp_rf_reg,
apartmentsTest[1,],
keep_distributions = TRUE)
# tests
test_that("Output format", {
expect_is(plot(bd_rf_class), "gg")
expect_is(plot(bd_rf_class, start_baseline = TRUE), "gg")
expect_is(plot(bd_rf_class_distr, plot_distributions = TRUE), "gg")
expect_is(plot(bd_rf_reg), "gg")
expect_is(plot(bd_rf_reg, max_features = 2), "gg")
expect_is(plot(bd_rf_reg, start_baseline = TRUE), "gg")
expect_is(plot(bd_rf_reg_distr, plot_distributions = TRUE), "gg")
})
test_that("Error when no distribution before provided", {
expect_error(plot(bd_rf_class, plot_distributions = TRUE))
expect_error(plot(bd_rf_reg, plot_distributions = TRUE))
})
test_that("Test plotD3_break_down", {
expect_is(plotD3(bd_rf_class), "r2d3")
expect_is(plotD3(bd_rf_class, max_features = 10), "r2d3")
expect_is(plotD3(bd_rf_class, max_features = 2, min_max = c(0,1)), "r2d3")
})
test_that("Test plotD3_shap", {
expect_is(plotD3(shap_rf_class), "r2d3")
expect_is(plotD3(shap_rf_class, max_features = 10), "r2d3")
expect_is(plotD3(shap_rf_class, max_features = 2, min_max = c(0,1)), "r2d3")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.