uber / bayesmark

Benchmark framework to easily compare Bayesian optimization methods on real machine learning tasks
Apache License 2.0
140 stars 34 forks source link

How is {log, logit, bilog} determined in `bayesmark/sklearn_func.py`? #11

Open HideakiImamura opened 4 years ago

HideakiImamura commented 4 years ago

Thanks for a great project. I'm using the benchmarking function in bayesmark/sklearn_func.py. This file defines several benchmark functions using sklearn. A "space" is defined for each function's hyperparameters. How is this "space" determined?

# RF
rf_cfg = {
    "max_depth": {"type": "int", "space": "linear", "range": (1, 15)},
    "max_features": {"type": "real", "space": "logit", "range": (0.01, 0.99)},
    "min_samples_split": {"type": "real", "space": "logit", "range": (0.01, 0.99)},
    "min_samples_leaf": {"type": "real", "space": "logit", "range": (0.01, 0.49)},
    "min_weight_fraction_leaf": {"type": "real", "space": "logit", "range": (0.01, 0.49)},
    "min_impurity_decrease": {"type": "real", "space": "linear", "range": (0.0, 0.5)},
}

In particular, I'd like to know how {log, logit, bilog} is determined here. Is there anything that would help me?

rdturnermtl commented 4 years ago

The user determines the space based on where they want more "search resolution". For instance, logit space will make algorithms more inclined to search near 0 and 1.