Catboost Classification with GridSearch Hyperparameter Tuning For R
R
library(catboost) #Create datasets train_dataset <- catboost.load_pool(data = X_train, label = y_train, cat_features = categorical_indicies) eval_dataset <- catboost.load_pool(data = X_val, label = y_val, cat_features = categorical_indicies) model <- catboost.train( train_pool = train_dataset, params = list(iterations = 1000, loss_function = "Logloss", eval_metric = "Accuracy") ) #Declare parameters to tune and values to try grid <- list( learning_rate = c(0.03, 0.1), depth = c(4, 6, 10), l2_leaf_reg = c(1, 3, 5) ) #Find optimum parameters tuned_model <- catboost.gridsearch( params = list(iterations = 1000, loss_function = "Logloss", eval_metric = "Accuracy"), grid = grid, train_pool = train_dataset ) #Fit model with early stopping if improvement hasn't been made within 50 iterations fit_model <- catboost.train( train_pool = train_dataset, eval_pool = eval_dataset, params = tuned_model["params"], early_stopping_rounds = 50 )