Here is a R sample code to show how to perform grid search in Naive Bayes algorithm using H2O machine learning platform:
# H2O library(h2o) library(ggplot2) library(data.table) # initialize the cluster with all the threads available h2o.init(nthreads = -1) h2o.init() h2o.init(max_mem_size = "2g") # Variables Necesarias train.h2o<-as.h2o(training) test.h2o <-as.h2o(testing) names(train.h2o) str(train.h2o) y <-4 x <-c(5:16) # specify the list of paramters hyper_params <- list( laplace = c(0,0.5,1,2,3) ) threshold =c(0.001,0.00001,0.0000001) # performs the grid search grid_id <-"dl_grid" model_bayes_grid <- h2o.grid( algorithm = "naivebayes", # name of the algorithm grid_id = grid_id, training_frame = train.h2o, validation_frame = test.h2o, x = x, y = y, hyper_params = hyper_params ) # find the best model and evaluate its performance stopping_metric <- 'accuracy' sorted_models <- h2o.getGrid( grid_id = grid_id, sort_by = stopping_metric, decreasing = TRUE ) best_model<-h2o.getModel(sorted_models@model_ids[[1]]) best_model h2o.confusionMatrix(best_model, valid = TRUE, metrics = 'accuracy') auc <- h2o.auc(best_model, valid = TRUE) fpr <- h2o.fpr( h2o.performance(best_model, valid = TRUE) )[['fpr']] tpr <- h2o.tpr( h2o.performance(best_model, valid = TRUE) )[['tpr']] ggplot( data.table(fpr = fpr, tpr = tpr), aes(fpr, tpr) ) + geom_line() + theme_bw()+ggtitle( sprintf('AUC: %f', auc) ) # To obtain the regularization, laplace, do the following: best_model@parameters best_model@parameters$laplace
Thats it, enjoy!!