Displays for model fits of multiple models and their ensembles. For classification models, the plots are heatmaps, for regression, scatterplots.
The goal of ensModelVis is to display model fits for multiple models and their ensembles.
You can install the development version of ensModelVis from GitHub with:
# install.packages("devtools")
devtools::install_github("domijan/ensModelVis")
This is a basic example:
library(ensModelVis)
data(iris)
if (require("MASS")) {
lda.model <- lda(Species ~ ., data = iris)
lda.pred <- predict(lda.model)
}
#> Loading required package: MASS
if (require("ranger")) {
ranger.model <- ranger(Species ~ ., data = iris, mtry = 1)
ranger.pred <- predict(ranger.model, iris)
ranger.model2 <-
ranger(Species ~ .,
data = iris,
mtry = 4,
num.trees = 10)
ranger.pred2 <- predict(ranger.model2, iris)
}
#> Loading required package: ranger
plot_ensemble(
iris$Species,
data.frame(
LDA = lda.pred$class,
RF = ranger.pred$predictions,
RF2 = ranger.pred2$predictions
)
)
plot_ensemble(
iris$Species,
data.frame(
LDA = lda.pred$class,
RF = ranger.pred$predictions,
RF2 = ranger.pred2$predictions
),
incorrect = TRUE
)
if (require("ranger")) {
ranger.model <- ranger(Species ~ ., data = iris, mtry = 1, probability = TRUE)
ranger.prob <- predict(ranger.model, iris)
ranger.model2 <-
ranger(Species ~ .,
data = iris,
mtry = 4,
num.trees = 10,
probability = TRUE)
ranger.prob2 <- predict(ranger.model2, iris)
}
plot_ensemble(
iris$Species,
data.frame(LDA = lda.pred$class,
RF = ranger.pred$predictions,
RF2 = ranger.pred2$predictions),
tibble_prob = data.frame(
LDA = apply(lda.pred$posterior, 1, max),
RF = apply(ranger.prob$predictions, 1, max),
RF2 = apply(ranger.prob2$predictions, 1, max)
)
)