# load the credit dataset
credit <- read.csv("credit.csv")
library(caret)
library(tictoc)  # A nice package for measuring run times in R.
## Creating a simple tuned model ----
# automated parameter tuning of C5.0 decision tree
set.seed(300)
m <- train(default ~ ., data = credit, method = "C5.0")
# summary of tuning results
m
# apply the best C5.0 candidate model to make predictions
p <- predict(m, credit)
confusionMatrix(data=p, credit$default)
m <- train(default ~ ., data = credit, method = "C5.0",
metric = "Kappa",
trControl = ctrl,
tuneGrid = grid,
verbose=FALSE)
toc()
## Customizing the tuning process ----
# use trainControl() to alter resampling strategy
ctrl <- trainControl(method = "repeatedcv", number = 10, repeats = 10,
selectionFunction = "oneSE", returnResamp="all")
# use expand.grid() to create grid of tuning parameters
grid <- expand.grid(.model = "tree",
.trials = c(1, 5, 10, 15, 20, 25, 30, 35),
.winnow = c(TRUE,FALSE))
# look at the result of expand.grid()
grid
# customize train() with the control list and grid of parameters
tic()
set.seed(300)
m <- train(default ~ ., data = credit, method = "C5.0",
metric = "Kappa",
trControl = ctrl,
tuneGrid = grid,
verbose=FALSE)
toc()
m
bank <- fread("bank-additional-full-2.csv", header = TRUE)
library(data.table)
tic()
bank <- fread("bank-additional-full-2.csv", header = TRUE)
toc()
tic()
set.seed(300)
m_rf_ranger <- ranger(y ~ ., data = bank, num.threads = 8)
toc()
m_rf_ranger
m_rf_ranger
tic()
set.seed(300)
m_rf_ranger <- ranger(y ~ ., data = bank, num.threads = 8)
## Random Forests ----
library(ranger)
tic()
set.seed(300)
m_rf_ranger <- ranger(default ~ ., data = credit, num.threads = 8)
# run in parallel, the doMC package runs on mac and linux
library(doMC)
registerDoMC(cores = 8)
## Random Forests ----
# random forest with default settings
library(randomForest)
tic()
set.seed(300)
rf <- randomForest(default ~ ., data = credit)
library(caret)
ctrl <- trainControl(method = "repeatedcv",
number = 10, repeats = 10)
# auto-tune a random forest
grid_rf <- expand.grid(.mtry = c(2, 4, 8, 16))
tic()
set.seed(300)
m_rf <- train(default ~ ., data = credit, method = "rf",
metric = "Kappa", trControl = ctrl,
tuneGrid = grid_rf)
toc()
m_rf
credit_pred <- predict(m_rf, credit)
confusionMatrix(data=credit_pred, credit$default)
###########################################################################
## Random Forests ----
library(Boruta)
tic()
set.seed(300)
m_rf_Boruta <- Boruta(default ~ ., data = credit, doTrace = 2, ntree = 500)
###########################################################################
## Random Forests ----
library(Boruta)
tic()
set.seed(300)
m_rf_Boruta <- Boruta(default ~ ., data = credit, doTrace = 2, ntree = 500)
credit
View(credit)
tic()
set.seed(300)
m_rf_Boruta <- Boruta(factor(default) ~ ., data = credit, doTrace = 2, ntree = 500)
toc()
