Isn't it weird that get_incumbent_id() only finds the incumbent based on the losses from max_budget runs?
I think the incumbent should be selected from all configs, regardless of budgets.
Let's say we use epoch as budget.
If
config A has a loss of 5 after running 20 epochs.
config B has a loss of 3 after running 10 epochs.
get_incumbent_id() will say config A is the incumbent. Then the user will build a model with config A using 20 epochs, but in fact, the user should build the model with config B, because config A is overfitting with 20 epochs.
I also suggest something like get_incumbent_id_and_budget() so users can know the optimal hyperparameter value combination as well as the optimal budget for building their model.