Skip to content
Permalink
master
Switch branches/tags
Go to file
 
 
Cannot retrieve contributors at this time
---
title: "Static Arena"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{arena_static}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
message = FALSE,
eval = FALSE
)
```
## Setup
```{r}
library(arenar)
apartments <- DALEX::apartments
head(apartments)
```
## Prepare models
Let's compare three models: GLM and GBMs with 100 and 500 trees. For each we
create explainer from DALEX package.
```{r, results = "hide"}
library(gbm)
library(DALEX)
library(dplyr)
model_gbm100 <- gbm(m2.price ~ ., data = apartments, n.trees = 100)
expl_gbm100 <- explain(
model_gbm100,
data = apartments,
y = apartments$m2.price,
label = "gbm [100 trees]"
)
model_gbm500 <- gbm(m2.price ~ ., data = apartments, n.trees = 500)
expl_gbm500 <- explain(
model_gbm500,
data = apartments,
y = apartments$m2.price,
label = "gbm [500 trees]"
)
model_glm <- glm(m2.price ~ ., data = apartments)
expl_glm <- explain(model_glm, data = apartments, y = apartments$m2.price)
```
## Prepare observations
Plots for static Arena are pre-caluclated and it takes time and file size. For
example we will take only apartments from 2009 or newer. Random
sample is also good.
```{r}
observations <- apartments %>% filter(construction.year >= 2009)
# Observations' names are taken from rownames
rownames(observations) <- paste0(
observations$district,
" ",
observations$surface,
"m2 "
)
```
## Create arena
```{r, eval = FALSE}
arena <- create_arena() %>%
# Pushing explainers for each models
push_model(expl_gbm100) %>%
push_model(expl_gbm500) %>%
push_model(expl_glm) %>%
# Push dataframe of observations
push_observations(observations) %>%
# Upload calculated arena files to Gist and open Arena in browser
upload_arena()
```
## Appending data
There are two ways of add new observations or new models without recalcualating
already generated plots. Let's add apartments built in 2008. It's similar for
models.
```{r}
observations2 <- apartments %>% filter(construction.year == 2008)
# Observations' names are taken from rownames
rownames(observations2) <- paste0(
observations2$district,
" ",
observations2$surface,
"m2 "
)
```
### New Arena session
We can add observations to already existing arena object and call
`arena_upload()`.
```{r, eval = FALSE}
arena %>%
push_observations(observations2) %>%
upload_arena()
```
### Append to already existing session
Sometimes we don't want to close Arena session and just add data. There is
argument in `arena_upload` function to do that. Remember to append new arena
object and to push all models and all observations that are required to plots
you want to append.
```{r, eval = FALSE}
create_arena() %>%
push_observations(arena_push_observations2) %>%
push_model(expl_glm) %>%
push_model(expl_gbm100) %>%
push_model(expl_gbm500) %>%
upload_arena(append_data = TRUE)
```