Skip to content

Instantly share code, notes, and snippets.

@timcdlucas
Created August 29, 2018 14:34
Show Gist options
  • Save timcdlucas/f75b7e8f4ebb9b7fe9ff12d8ea454ba8 to your computer and use it in GitHub Desktop.
Save timcdlucas/f75b7e8f4ebb9b7fe9ff12d8ea454ba8 to your computer and use it in GitHub Desktop.
Comparing speed of Random Forest like algorithms
# sandbox
library(caret)
library(tictoc)
g1 <- data.frame(mtry = c(2, 5))
tic()
m <- train(price ~ .,
data = tail(ggplot2::diamonds, 1e4),
method = 'rf',
trControl = trainControl(number = 3),
tuneGrid = g1)
toc()
plot(m)
g2 <- data.frame(mtry = c(2, 5),
splitrule = 'variance',
min.node.size = 5)
tic()
m2 <- train(price ~ .,
data = tail(ggplot2::diamonds, 1e4),
method = 'ranger',
trControl = trainControl(number = 3),
tuneGrid = g2)
toc()
plot(m2)
g3 <- data.frame(nrounds = 1,
max_depth = c(2, 5),
subsample = 0.8,
eta = 1,
gamma = 0,
colsample_bytree = 0.5,
min_child_weight = 1)
tic()
m3 <- train(price ~ .,
data = tail(ggplot2::diamonds, 1e4),
method = 'xgbTree',
trControl = trainControl(number = 3),
tuneGrid = g3,
num_parallel_tree = 500)
toc()
plot(m3)
# Larger data
# sandbox
library(caret)
library(tictoc)
g1 <- data.frame(mtry = c(2, 5))
tic()
m <- train(price ~ .,
data = tail(ggplot2::diamonds, 1e5),
method = 'rf',
trControl = trainControl(number = 3),
tuneGrid = g1)
toc()
plot(m)
g2 <- data.frame(mtry = c(2, 5),
splitrule = 'variance',
min.node.size = 5)
tic()
m2 <- train(price ~ .,
data = tail(ggplot2::diamonds, 1e5),
method = 'ranger',
trControl = trainControl(number = 3),
tuneGrid = g2)
toc()
plot(m2)
g3 <- data.frame(nrounds = 1,
max_depth = c(2, 5),
subsample = 0.8,
eta = 1,
gamma = 0,
colsample_bytree = 0.5,
min_child_weight = 1)
tic()
m3 <- train(price ~ .,
data = tail(ggplot2::diamonds, 1e5),
method = 'xgbTree',
trControl = trainControl(number = 3),
tuneGrid = g3,
num_parallel_tree = 500)
toc()
plot(m3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment