## ----eval=FALSE, include=TRUE------------------------------------------------- # knitr::opts_chunk$set(echo = TRUE) # # library(ReSurv) # library(reticulate) # use_virtualenv("pyresurv") # ## ----eval=FALSE, include=TRUE------------------------------------------------- # input_data_0 <- data_generator( # random_seed = 1964, # scenario = 0, # time_unit = 1 / 360, # years = 4, # period_exposure = 200 # ) ## ----eval=FALSE, include=TRUE------------------------------------------------- # individual_data <- IndividualDataPP( # data = input_data_0, # id = NULL, # categorical_features = "claim_type", # continuous_features = "AP", # accident_period = "AP", # calendar_period = "RP", # input_time_granularity = "days", # output_time_granularity = "quarters", # years = 4 # ) ## ----eval=FALSE, include=TRUE------------------------------------------------- # # resurv_cv_xgboost <- ReSurvCV( # IndividualDataPP = individual_data, # model = "XGB", # hparameters_grid = list( # booster = "gbtree", # eta = c(.001, .01, .2, .3), # max_depth = c(3, 6, 8), # subsample = c(1), # alpha = c(0, .2, 1), # lambda = c(0, .2, 1), # min_child_weight = c(.5, 1) # ), # print_every_n = 1L, # nrounds = 500, # verbose = FALSE, # verbose.cv = TRUE, # early_stopping_rounds = 100, # folds = 5, # parallel = T, # ncores = 2, # random_seed = 1 # ) # ## ----eval=FALSE, include=TRUE------------------------------------------------- # # bounds <- list( # num_layers = c(2L, 10L), # num_nodes = c(2L, 10L), # optim = c(1L, 2L), # activation = c(1L, 2L), # lr = c(.005, 0.5), # xi = c(0, 0.5), # eps = c(0, 0.5) # ) # ## ----eval=FALSE, include=TRUE------------------------------------------------- # library(ParBayesianOptimization) ## ----eval=FALSE, include=TRUE------------------------------------------------- # # obj_func <- function(num_layers, # num_nodes, # optim, # activation, # lr, # xi, # eps) { # optim = switch(optim, "Adam", "SGD") # activation = switch(activation, "LeakyReLU", "SELU") # batch_size = as.integer(5000) # number_layers = as.integer(num_layers) # num_nodes = as.integer(num_nodes) # # deepsurv_cv <- ReSurvCV( # IndividualDataPP = individual_data, # model = "NN", # hparameters_grid = list( # num_layers = num_layers, # num_nodes = num_nodes, # optim = optim, # activation = activation, # lr = lr, # xi = xi, # eps = eps, # tie = "Efron", # batch_size = batch_size, # early_stopping = 'TRUE', # patience = 20 # ), # epochs = as.integer(300), # num_workers = 0, # verbose = FALSE, # verbose.cv = TRUE, # folds = 3, # parallel = FALSE, # random_seed = as.integer(Sys.time()) # ) # # # lst <- list( # Score = -deepsurv_cv$out.cv.best.oos$test.lkh, # # train.lkh = deepsurv_cv$out.cv.best.oos$train.lkh # ) # # return(lst) # } # ## ----eval=FALSE, include=TRUE------------------------------------------------- # # bayes_out <- bayesOpt( # FUN = obj_func, # bounds = bounds, # initPoints = 50, # iters.n = 1000, # iters.k = 50, # otherHalting = list(timeLimit = 18000) # ) # # ## ----eval=FALSE, include=TRUE------------------------------------------------- # # bounds <- list( # eta = c(0, 1), # max_depth = c(1L, 25L), # min_child_weight = c(0, 50), # subsample = c(0.51, 1), # lambda = c(0, 15), # alpha = c(0, 15) # ) # ## ----eval=FALSE, include=TRUE------------------------------------------------- # obj_func <- function(eta, # max_depth, # min_child_weight, # subsample, # lambda, # alpha) { # xgbcv <- ReSurvCV( # IndividualDataPP = individual_data, # model = "XGB", # hparameters_grid = list( # booster = "gbtree", # eta = eta, # max_depth = max_depth, # subsample = subsample, # alpha = lambda, # lambda = alpha, # min_child_weight = min_child_weight # ), # print_every_n = 1L, # nrounds = 500, # verbose = FALSE, # verbose.cv = TRUE, # early_stopping_rounds = 30, # folds = 3, # parallel = FALSE, # random_seed = as.integer(Sys.time()) # ) # # lst <- list( # Score = -xgbcv$out.cv.best.oos$test.lkh, # train.lkh = xgbcv$out.cv.best.oos$train.lkh # ) # # return(lst) # } # ## ----eval=FALSE, include=TRUE------------------------------------------------- # # library(DoParallel) # # cl <- makeCluster(parallel::detectCores()) # registerDoParallel(cl) # # clusterEvalQ(cl, { # library("ReSurv") # }) # # bayes_out <- bayesOpt( # FUN = obj_func # , # bounds = bounds # , # initPoints = length(bounds) + 20 # , # iters.n = 1000 # , # iters.k = 50 # , # otherHalting = list(timeLimit = 18000) # , # parallel = TRUE # ) #