cheem

Radial tours of local explanations. Package repository for trees of cheem work and app.

https://github.com/nspyrison/cheem

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.7%) to scientific vocabulary
Last synced: 11 months ago · JSON representation

Repository

Radial tours of local explanations. Package repository for trees of cheem work and app.

Basic Info
Statistics
  • Stars: 2
  • Watchers: 3
  • Forks: 2
  • Open Issues: 0
  • Releases: 1
Created almost 5 years ago · Last pushed 11 months ago
Metadata Files
Readme Changelog License

README.md

cheem

Interactively explore data- and local explanation- spaces and residual side-by-side. Further explore the support of a selected observation's local explanation with the radial tour.

Context

Local explanations approximate the linear variable importance of a non-linear model in the vicinity of one instance(observation). That is, a point-measure of each variable's importance to the model at the particular location in data-space.

cheem extracts the local explanation of every observation in a dataset, given a model. Given a model, extract the local explanation of every observation in a data set. View the data- and explanation-spaces side-by-side in an interactive shiny application. Further explored a selected point against a comparison using its explanation as a 1D projection basis. A radial tour then explores the structure of explanation projection.

Getting started

```

Download the package

install.packages("cheem", dependencies = TRUE)

May need to restart the R session so RSudio has the correct file structure

rstudioapi::restartSession()

Load cheem into session

library(cheem)

Try the app

run_app()

Processing your data; follow the examples in cheem_ls()

?cheem_ls ```

Global view

The global view shows data-, attribution-spaces, and residual plot side-by-side with linked brushing and hover tooltip.

By exploring the global view, identify a primary and comparison observation to compare. For the classification task, typically a misclassified point is selected and compared against a nearby correctly classified one. In regression, we can compare a point with an extreme residual with a nearby point that is more accurately predicted.

Radial cheem tour

The attribution of the primary observation becomes the 1D basis for the tour. The variable with the largest difference between the primary and comparison point's bases is selected as the manipulation variable. That is the variable whose contribution change drives the change in the projection basis.

By doing this, we are testing the local explanation. By testing the variable sensitivity to the structure identified in the local explanation, we can better evaluate how good of an explanation it is; how sensitive its prediction is to a change in the variable contributions.

Original application

We started by looking at the model-agnostic local explanation tree SHAP applied to random forests. We made this choice out of concern for runtime (treeshap uses an alternative algorithm with reduced computational complexity and thus achieves much faster run time extracting the full SHAP matrix during the preprocessing step). The namesake, Cheem, stems from the original application to tree-based models in the DALEX ecosystem; Cheem are a fictional race of tree-based humanoids for consistency with the Dr. who/Dr. why theme.

Sources

Package build workflow

  • devtools::document() ## documentation changes
  • pkgdown::build_site() ## packagedown site changes (documentation, vignettes, readme)
  • message("Manually do: Build tab > Install and Restart") ## build package
  • rhub::checkforcran() ## check package
  • devtools::submit_cran() ## Submit to CRAN

Owner

  • Name: Nicholas Spyrison
  • Login: nspyrison
  • Kind: user
  • Location: Mebourne, VIC, Australia

Multivariate data vis, Machine Learning, and interpretability.

GitHub Events

Total
  • Issues event: 1
  • Issue comment event: 3
  • Push event: 5
  • Create event: 1
Last Year
  • Issues event: 1
  • Issue comment event: 3
  • Push event: 5
  • Create event: 1

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 195
  • Total Committers: 2
  • Avg Commits per committer: 97.5
  • Development Distribution Score (DDS): 0.036
Past Year
  • Commits: 22
  • Committers: 2
  • Avg Commits per committer: 11.0
  • Development Distribution Score (DDS): 0.318
Top Committers
Name Email Commits
Nick Spyrison s****n@g****m 188
dicook v****t@g****m 7

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 4
  • Total pull requests: 0
  • Average time to close issues: 3 months
  • Average time to close pull requests: N/A
  • Total issue authors: 4
  • Total pull request authors: 0
  • Average comments per issue: 1.5
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • teunbrand (1)
  • pbiecek (1)
  • jameslamb (1)
  • dicook (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 293 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 4
  • Total maintainers: 1
cran.r-project.org: cheem

Interactively Explore Local Explanations with the Radial Tour

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 293 Last month
Rankings
Forks count: 21.9%
Average: 29.7%
Dependent packages count: 29.8%
Stargazers count: 31.7%
Dependent repos count: 35.5%
Maintainers (1)
Last synced: 11 months ago

Dependencies

DESCRIPTION cran
  • R >= 3.5.0 depends
  • DT * imports
  • Rcpp * imports
  • data.table * imports
  • ggplot2 * imports
  • magrittr * imports
  • plotly * imports
  • shiny * imports
  • shinycssloaders * imports
  • shinythemes * imports
  • spinifex >= 0.3.3 imports
  • beepr * suggests
  • dplyr * suggests
  • gbm * suggests
  • gganimate * suggests
  • knitr * suggests
  • lightgbm * suggests
  • lqmm * suggests
  • mvtnorm * suggests
  • randomForest * suggests
  • ranger * suggests
  • rmarkdown * suggests
  • spelling * suggests
  • testthat >= 3.0.0 suggests
  • tictoc * suggests
  • tidyr * suggests
  • tourr * suggests
  • xgboost * suggests
.github/workflows/pkgdown.yaml actions
  • JamesIves/github-pages-deploy-action v4.4.1 composite
  • actions/checkout v3 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/rhub.yaml actions
  • r-hub/actions/checkout v1 composite
  • r-hub/actions/platform-info v1 composite
  • r-hub/actions/run-check v1 composite
  • r-hub/actions/setup v1 composite
  • r-hub/actions/setup-deps v1 composite
  • r-hub/actions/setup-r v1 composite