pytabkit.models.hyper_opt package

Submodules

pytabkit.models.hyper_opt.coord_opt module

class pytabkit.models.hyper_opt.coord_opt.CoordOptimizer

Bases: HyperOptimizer

class CoordOptFuncWrapper

Bases: object

__init__(f, fixed_params)
Parameters:
  • f (Callable[[dict], Tuple[float, Any]])

  • fixed_params (Dict[str, Any])

__init__(space, fixed_params, n_hyperopt_steps=50, **config)
Parameters:
  • space (Dict[str, Hyperparameter])

  • fixed_params (Dict[str, Any])

  • n_hyperopt_steps (int)

class pytabkit.models.hyper_opt.coord_opt.CoordOptimizerImpl

Bases: object

__init__(f, space, n_steps, beta=0.5, step_dec_factor=0.5, step_inc_factor=2.0, initial_step_multiplier=8.0)
Parameters:
  • f (Callable[[Dict], Tuple[float, Any]])

  • space (Dict[str, Hyperparameter])

  • n_steps (int)

  • beta (float)

  • step_dec_factor (float)

  • step_inc_factor (float)

  • initial_step_multiplier (float)

already_evaluated(new_hp_values)
Parameters:

new_hp_values (ndarray) – New hyperparameter values that should be tried.

Returns:

True if these hyperparameters have already been evaluated before

Return type:

bool

convert_hp_values(values)
Parameters:

values (ndarray)

Return type:

Dict[str, Any]

coord_opt_idx(idx)
Parameters:

idx (int)

eval(new_hp_values)
Parameters:

new_hp_values (ndarray)

Return type:

Tuple[float, Any]

run()
Return type:

None

suggest(new_hp_values)
Return type:

float

class pytabkit.models.hyper_opt.coord_opt.Hyperparameter

Bases: object

__init__(start_value, min_step_size, importance, log_scale=False, only_int=False, min_value=-inf, max_value=inf, out_func=None, max_step_size=inf)
Parameters:
  • start_value (int | float)

  • min_step_size (int | float)

  • importance (float)

  • log_scale (bool)

  • only_int (bool)

  • min_value (int | float)

  • max_value (int | float)

  • out_func (Callable[[Any], Any] | None)

  • max_step_size (float)

adjust_step_size(current_value, step_size)
Parameters:
  • current_value (float)

  • step_size (float)

Return type:

float | None

apply_tfms(x)
Parameters:

x (Any)

Return type:

Any

pytabkit.models.hyper_opt.coord_opt.identity(x)

pytabkit.models.hyper_opt.hyper_optimizers module

class pytabkit.models.hyper_opt.hyper_optimizers.ConstantHyperOptimizer

Bases: HyperOptimizer

__init__(params)
Parameters:

params (dict)

class pytabkit.models.hyper_opt.hyper_optimizers.FunctionEvaluationTracker

Bases: object

Helper class to keep track of where the function to be optimized is evaluated and what are the best parameters

__init__(f, n_steps, opt_desc, logger)
Parameters:
  • f (Callable[[dict], Tuple[float, Any]])

  • n_steps (int)

  • opt_desc (str)

  • logger (Logger)

get_best_params_and_result()
Return type:

Tuple[Dict, Tuple[float, Any]]

class pytabkit.models.hyper_opt.hyper_optimizers.HyperOptimizer

Bases: object

__init__(n_hyperopt_steps)
Parameters:

n_hyperopt_steps (int)

get_n_hyperopt_steps()
Return type:

int

optimize(f, seed, opt_desc, logger)
Parameters:
  • f (Callable[[dict], Tuple[float, Any]]) – Function to minimize. It should take a dict of parameters

  • seed (int)

  • opt_desc (str)

  • logger (Logger)

Return type:

Tuple[Dict, Any]

and return a tuple containing the validation loss and additional information about the run (additional information could for example be the early stopping epoch found in this particular run, for example {‘n_estimators’: best_n_estimators}) :param seed: Random seed for optimization :param opt_desc: name of the optimized algorithm / optimization problem

(used for printing optimization intermediate state)

Parameters:
  • logger (Logger) – Logger used for printing information

  • f (Callable[[dict], Tuple[float, Any]])

  • seed (int)

  • opt_desc (str)

Returns:

Returns a tuple containing a dictionary with the optimal parameters

Return type:

Tuple[Dict, Any]

and the additional info generated by the function at the optimal parameters

class pytabkit.models.hyper_opt.hyper_optimizers.HyperoptOptimizer

Bases: HyperOptimizer

class HyperoptFuncWrapper

Bases: object

__init__(f, fixed_params)
Parameters:
  • f (Callable[[dict], Tuple[float, Any]])

  • fixed_params (dict)

__init__(space, fixed_params, n_hyperopt_steps=50, **config)
Parameters:

n_hyperopt_steps (int)

class pytabkit.models.hyper_opt.hyper_optimizers.SMACOptimizer

Bases: HyperOptimizer

class SMACFuncWrapper

Bases: object

__init__(f, fixed_params)
Parameters:
  • f (Callable[[dict], Tuple[float, Any]])

  • fixed_params (Dict[str, Any])

__init__(space, fixed_params, n_hyperopt_steps=50, tmp_folder='smac3_output', **config)
Parameters:
  • fixed_params (Dict[str, Any])

  • n_hyperopt_steps (int)

  • tmp_folder (str | Path)

pytabkit.models.hyper_opt.hyper_optimizers.f_unpack_dict(dct)

Unpacks all sub-dictionaries in given dictionary recursively. There should be no duplicated keys across all nested subdictionaries, or some instances will be lost without warning

Source: https://www.kaggle.com/fanvacoolt/tutorial-on-hyperopt

Parameters:

dct : dictionary to unpack

Returns:

: unpacked dictionary

Module contents