def setup_grid_params(self):
    '\n        This function setup the randomized gridsearch parameters that will be used later on:\n\n        1. It will first try to grab all the parameters that are griddable and parameters used by GLM.\n        2. It will find the intersection of parameters that are both griddable and used by GLM.\n        3. There are several extra parameters that are used by GLM that are denoted as griddable but actually is not.\n        These parameters have to be discovered manually and they These are captured in self.exclude_parameter_lists.\n        4. We generate the gridsearch hyper-parameter.  For numerical parameters, we will generate those randomly.\n        For enums, we will include all of them.\n\n        :return: None\n        '
    model = H2OGeneralizedLinearEstimator(family=self.family, nfolds=self.nfolds)
    model.train(x=self.x_indices, y=self.y_index, training_frame=self.training1_data)
    self.one_model_time = pyunit_utils.find_grid_runtime([model])
    print('Time taken to build a base barebone model is {0}'.format(self.one_model_time))
    (self.gridable_parameters, self.gridable_types, self.gridable_defaults) = pyunit_utils.get_gridables(model._model_json['parameters'])
    self.hyper_params = {}
    self.hyper_params['fold_assignment'] = ['AUTO', 'Random', 'Modulo']
    self.hyper_params['missing_values_handling'] = ['MeanImputation', 'Skip']
    (self.hyper_params, self.gridable_parameters, self.gridable_types, self.gridable_defaults) = pyunit_utils.gen_grid_search(model.full_parameters.keys(), self.hyper_params, self.exclude_parameter_lists, self.gridable_parameters, self.gridable_types, self.gridable_defaults, random.randint(1, self.max_int_number), self.max_int_val, self.min_int_val, random.randint(1, self.max_real_number), self.max_real_val, self.min_real_val)
    if ('lambda' in list(self.hyper_params)):
        self.hyper_params['lambda'] = [(self.lambda_scale * x) for x in self.hyper_params['lambda']]
    time_scale = (self.max_runtime_scale * self.one_model_time)
    if ('max_runtime_secs' in list(self.hyper_params)):
        self.hyper_params['max_runtime_secs'] = [(time_scale * x) for x in self.hyper_params['max_runtime_secs']]
    self.possible_number_models = pyunit_utils.count_models(self.hyper_params)
    pyunit_utils.write_hyper_parameters_json(self.current_dir, self.sandbox_dir, self.json_filename, self.hyper_params)
This function setup the randomized gridsearch parameters that will be used later on:

1. It will first try to grab all the parameters that are griddable and parameters used by GLM.
2. It will find the intersection of parameters that are both griddable and used by GLM.
3. There are several extra parameters that are used by GLM that are denoted as griddable but actually is not.
These parameters have to be discovered manually and they These are captured in self.exclude_parameter_lists.
4. We generate the gridsearch hyper-parameter.  For numerical parameters, we will generate those randomly.
For enums, we will include all of them.

:return: None
def setup_grid_params(self):
    '\n        This function setup the randomized gridsearch parameters that will be used later on:\n\n        1. It will first try to grab all the parameters that are griddable and parameters used by GLM.\n        2. It will find the intersection of parameters that are both griddable and used by GLM.\n        3. There are several extra parameters that are used by GLM that are denoted as griddable but actually is not.\n        These parameters have to be discovered manually and they These are captured in self.exclude_parameter_lists.\n        4. We generate the gridsearch hyper-parameter.  For numerical parameters, we will generate those randomly.\n        For enums, we will include all of them.\n\n        :return: None\n        '
    model = H2OGeneralizedLinearEstimator(family=self.family, nfolds=self.nfolds)
    model.train(x=self.x_indices, y=self.y_index, training_frame=self.training1_data)
    self.one_model_time = pyunit_utils.find_grid_runtime([model])
    print('Time taken to build a base barebone model is {0}'.format(self.one_model_time))
    (self.gridable_parameters, self.gridable_types, self.gridable_defaults) = pyunit_utils.get_gridables(model._model_json['parameters'])
    self.hyper_params = {}
    self.hyper_params['fold_assignment'] = ['AUTO', 'Random', 'Modulo']
    self.hyper_params['missing_values_handling'] = ['MeanImputation', 'Skip']
    (self.hyper_params, self.gridable_parameters, self.gridable_types, self.gridable_defaults) = pyunit_utils.gen_grid_search(model.full_parameters.keys(), self.hyper_params, self.exclude_parameter_lists, self.gridable_parameters, self.gridable_types, self.gridable_defaults, random.randint(1, self.max_int_number), self.max_int_val, self.min_int_val, random.randint(1, self.max_real_number), self.max_real_val, self.min_real_val)
    if ('lambda' in list(self.hyper_params)):
        self.hyper_params['lambda'] = [(self.lambda_scale * x) for x in self.hyper_params['lambda']]
    time_scale = (self.max_runtime_scale * self.one_model_time)
    if ('max_runtime_secs' in list(self.hyper_params)):
        self.hyper_params['max_runtime_secs'] = [(time_scale * x) for x in self.hyper_params['max_runtime_secs']]
    self.possible_number_models = pyunit_utils.count_models(self.hyper_params)
    pyunit_utils.write_hyper_parameters_json(self.current_dir, self.sandbox_dir, self.json_filename, self.hyper_params)