library(ettie)
library(mlr)

data <- compile.dataset()
data$events <- make.features(data$events)
# or (when data is backed up)
#data <- list(
#  events = fst::read.fst('../data/events-20190107.fst'),
#  matches = fst::read.fst('../data/matches-20190107.fst')
#)
input <- build.input(data)
results <- run.benchmark(input, parallel = TRUE)
performances <- getBMRAggrPerformances(results, as.df = TRUE)
library(dplyr)
library(ggpubr)
library(tidyr)

performances.per.measure <- performances %>%
  gather(measure, mean, -task.id, -learner.id) %>%
  mutate(
    learner.id=sub("^classif\\.(.*?)(\\.tuned)?$", "\\1", learner.id),
    measure=recode(measure,
                   kappa.test.mean="Cohen's kappa",
                   logloss.test.mean="Logarithmic loss",
                   acc.test.mean="Accuracy",
                   multiclass.aunu.test.mean="AUC",
                   multiclass.brier.test.mean="Brier score",
                   multiclass.mcc.test.mean="Matthews correlation coefficient")
  )
ggbarplot(performances.per.measure, x = 'learner.id', y = 'mean', fill = 'learner.id', color = 'learner.id',
          xlab = FALSE, ylab = FALSE, x.text.angle = 45, legend = 'none') + facet_wrap('measure', scales='free_y')

extraTrees, glmnet e lda se destacam

library(iml)

#plotCalibration(generateCalibrationData(results, breaks = seq(0, 1, 0.05)))

#doParallel::registerDoParallel()
features.et <- c(
  "avg.recovery.time.team", "avg.player.possession.team", "avg.team.possession.team",
  "shots.team", "expulsions.team", "passes.team", "successful.passes.team",
  "corners.team", "fouls.team", "home"
)

models.et <- getBMRModels(results, 'match.result', 'classif.glmnet.tuned', drop = TRUE)
predictor.et <- Predictor$new(models.et[[1]], input)
ale.et <- FeatureEffects$new(predictor.et, features.et, "ale")
ale.et$plot(ncols = 2)
ice.et <- FeatureEffects$new(predictor.et, features.et, "ice")
ice.et$plot(ncols = 2)
lime.et <- LocalModel$new(predictor.et, input[1,], k = 10)
plot(lime.et)
shapley.et <- Shapley$new(predictor.et, input[1,])
shapley.et$plot()
# VIN
# Friedman H
# LIME/aLIME
# SHAP


ElSaico/ettie documentation built on Nov. 8, 2019, 1:32 p.m.