knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
This example demonstrates how to use the breakDown
package for models created with the caret package.
First we will generate some data.
library(caret) set.seed(2) training <- twoClassSim(50, linearVars = 2) trainX <- training[, -ncol(training)] trainY <- training$Class head(training)
Now we are ready to train a model. Let's train a glm
model with caret
.
cctrl1 <- trainControl(method = "cv", number = 3, returnResamp = "all", classProbs = TRUE, summaryFunction = twoClassSummary) test_class_cv_model <- train(trainX, trainY, method = "glm", trControl = cctrl1, metric = "ROC", preProc = c("center", "scale")) test_class_cv_model
To use breakDown
we need a function that will calculate scores/predictions for a single observation. By default the predict()
function returns predicted class.
So we are adding type = "prob"
argument to get scores. And since there will be two scores for each observarion we need to extract one of them.
predict.fun <- function(model, x) predict(model, x, type = "prob")[,1] testing <- twoClassSim(10, linearVars = 2) predict.fun(test_class_cv_model, testing[1,])
Now we are ready to call the broken()
function.
library("breakDown") explain_2 <- broken(test_class_cv_model, testing[1,], data = trainX, predict.function = predict.fun) explain_2
And plot it.
library(ggplot2) plot(explain_2) + ggtitle("breakDown plot for caret/glm model")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.