https://github.com/slds-lmu/imlplots
Create Interpretable Machine Learning plots with an interactive Shiny based dashboard
https://github.com/slds-lmu/imlplots
interpretable-ml shinydashboard
Last synced: 3 months ago
JSON representation
Create Interpretable Machine Learning plots with an interactive Shiny based dashboard
- Host: GitHub
- URL: https://github.com/slds-lmu/imlplots
- Owner: slds-lmu
- Created: 2018-04-05T08:23:30.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-09-19T10:27:32.000Z (over 7 years ago)
- Last Synced: 2025-10-13T00:56:31.306Z (8 months ago)
- Topics: interpretable-ml, shinydashboard
- Language: R
- Homepage:
- Size: 2.54 MB
- Stars: 15
- Watchers: 1
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.Rmd
Awesome Lists containing this project
README
---
output: github_document
editor_options:
chunk_output_type: console
---
# imlplots: interpretable machine learning plots
`imlplots ` is an R package that provide an interactive Shiny dashboard for three kinds of Interpretable Machine Learning (IML) plots
* Partial Dependence Plots (PDP)
* Individual Conditional Expectation (ICE) plots
* Accumulated Local Effect (ALE) plots
```{r global_options, include=FALSE}
library(knitr)
opts_chunk$set(echo=TRUE, warning=FALSE, message=FALSE)
set.seed(42)
load("data/boston.rda")
library(mlr)
```
# Installation
The package can be installed directly from github with devtools
```{r, results = 'hide', eval = FALSE}
# install.packages("devtools")
devtools::install_github('juliafried/imlplots')
library(imlplots)
```
# Quickstart
You can fit classification and regression problems from the `mlr` package and analyse possible interaction effects in a Shiny dasbhoard.
For quickstart we take the popular Boston Housing data, where we want to predict the median housing price in Boston.
```{r}
print(summarizeColumns(boston)[, -c(5, 6, 7)], digits = 4)
```
For using `imlplots` Shiny dashboard, three input arguments need to be specified
* `data` - the input data
* `task`- the learning task
* `models` - one or several trained models
We create a regression task with `medv` as target variable.
The task structure is determined by `mlr` package.
```{r}
boston.task = makeRegrTask(data = boston, target = "medv")
```
The `imlplots` dashboard allows the comparison of multiple learning algorithms, therefore we fit two different models - first a random forest and second a GLM.
```{r}
rf.mod = train("regr.randomForest", boston.task)
glm.mod = train("regr.glm", boston.task)
```
The input for the Shiny app is a list of learners.
```{r}
mod.list = list(rf.mod, glm.mod)
```
Now the Shiny app can be used.
```{r, eval=FALSE}
imlplots(data = boston, task = boston.task, models = mod.list)
```
## Code for Copy & Paste
```{r, eval=FALSE}
boston.task = makeRegrTask(data = boston, target = "medv")
rf.mod = train("regr.randomForest", boston.task)
glm.mod = train("regr.glm", boston.task)
mod.list = list(rf.mod, glm.mod)
imlplots(data = boston, task = boston.task, models = mod.list)
```
## Further Examples
* Check out our [Wiki](https://github.com/juliafried/imlplots/wiki)
* [Vignette](https://github.com/juliafried/imlplots/raw/master/vignettes/imlplots.pdf)
# References
* [References](https://github.com/juliafried/imlplots/raw/master/paper/references.pdf)