Specify Hyperparameters Manually

It’s natural that you have some specific sets of hyperparameters to try first such as initial learning rate values and the number of leaves. Also, it’s possible that you’ve already tried those sets before having Optuna find better sets of hyperparameters.

Optuna provides two APIs to support such cases:

  1. Passing those sets of hyperparameters and let Optuna evaluate them - enqueue_trial()

  2. Adding the results of those sets as completed Trials - add_trial()

First Scenario: Have Optuna evaluate your hyperparameters

In this scenario, let’s assume you have some out-of-box sets of hyperparameters but have not evaluated them yet and decided to use Optuna to find better sets of hyperparameters.

Optuna has optuna.study.Study.enqueue_trial() which lets you pass those sets of hyperparameters to Optuna and Optuna will evaluate them.

This section walks you through how to use this lit API with LightGBM.

import lightgbm as lgb
import numpy as np
import sklearn.datasets
import sklearn.metrics
from sklearn.model_selection import train_test_split

import optuna

Define the objective function.

def objective(trial):
    data, target = sklearn.datasets.load_breast_cancer(return_X_y=True)
    train_x, valid_x, train_y, valid_y = train_test_split(data, target, test_size=0.25)
    dtrain = lgb.Dataset(train_x, label=train_y)
    dvalid = lgb.Dataset(valid_x, label=valid_y)

    param = {
        "objective": "binary",
        "metric": "auc",
        "verbosity": -1,
        "boosting_type": "gbdt",
        "bagging_fraction": min(trial.suggest_float("bagging_fraction", 0.4, 1.0 + 1e-12), 1),
        "bagging_freq": trial.suggest_int("bagging_freq", 0, 7),
        "min_child_samples": trial.suggest_int("min_child_samples", 5, 100),
    }

    gbm = lgb.train(param, dtrain, valid_sets=[dvalid])

    preds = gbm.predict(valid_x)
    pred_labels = np.rint(preds)
    accuracy = sklearn.metrics.accuracy_score(valid_y, pred_labels)
    return accuracy

Then, construct Study for hyperparameter optimization.

study = optuna.create_study(direction="maximize", pruner=optuna.pruners.MedianPruner())

Here, we get Optuna evaluate some sets with larger "bagging_fraq" value and the default values.

study.enqueue_trial(
    {
        "bagging_fraction": 1.0,
        "bagging_freq": 0,
        "min_child_samples": 20,
    }
)

study.enqueue_trial(
    {
        "bagging_fraction": 0.75,
        "bagging_freq": 5,
        "min_child_samples": 20,
    }
)

import logging
import sys

# Add stream handler of stdout to show the messages to see Optuna works expectedly.
optuna.logging.get_logger("optuna").addHandler(logging.StreamHandler(sys.stdout))
study.optimize(objective, n_trials=100, timeout=600)
Trial 0 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 1.0, 'bagging_freq': 0, 'min_child_samples': 20}. Best is trial 0 with value: 0.9440559440559441.
Trial 1 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.75, 'bagging_freq': 5, 'min_child_samples': 20}. Best is trial 1 with value: 0.965034965034965.
Trial 2 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.46746164402127766, 'bagging_freq': 6, 'min_child_samples': 90}. Best is trial 1 with value: 0.965034965034965.
Trial 3 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.4427088429263735, 'bagging_freq': 0, 'min_child_samples': 35}. Best is trial 1 with value: 0.965034965034965.
Trial 4 finished with value: 0.9230769230769231 and parameters: {'bagging_fraction': 0.6903632707494365, 'bagging_freq': 4, 'min_child_samples': 97}. Best is trial 1 with value: 0.965034965034965.
Trial 5 finished with value: 0.986013986013986 and parameters: {'bagging_fraction': 0.5704266822618622, 'bagging_freq': 3, 'min_child_samples': 7}. Best is trial 5 with value: 0.986013986013986.
Trial 6 finished with value: 0.993006993006993 and parameters: {'bagging_fraction': 0.860396198099751, 'bagging_freq': 6, 'min_child_samples': 26}. Best is trial 6 with value: 0.993006993006993.
Trial 7 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.6083887071417847, 'bagging_freq': 1, 'min_child_samples': 77}. Best is trial 6 with value: 0.993006993006993.
Trial 8 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.40359753177401503, 'bagging_freq': 7, 'min_child_samples': 8}. Best is trial 6 with value: 0.993006993006993.
Trial 9 finished with value: 0.9370629370629371 and parameters: {'bagging_fraction': 0.8851729430442898, 'bagging_freq': 0, 'min_child_samples': 17}. Best is trial 6 with value: 0.993006993006993.
Trial 10 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.8809623982720884, 'bagging_freq': 7, 'min_child_samples': 51}. Best is trial 6 with value: 0.993006993006993.
Trial 11 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.5859912368770783, 'bagging_freq': 3, 'min_child_samples': 43}. Best is trial 6 with value: 0.993006993006993.
Trial 12 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.7958152928024635, 'bagging_freq': 3, 'min_child_samples': 5}. Best is trial 6 with value: 0.993006993006993.
Trial 13 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.5633707279623583, 'bagging_freq': 2, 'min_child_samples': 31}. Best is trial 6 with value: 0.993006993006993.
Trial 14 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.6761582261904647, 'bagging_freq': 4, 'min_child_samples': 60}. Best is trial 6 with value: 0.993006993006993.
Trial 15 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.8968272843513039, 'bagging_freq': 5, 'min_child_samples': 32}. Best is trial 6 with value: 0.993006993006993.
Trial 16 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.5177763868233995, 'bagging_freq': 2, 'min_child_samples': 58}. Best is trial 6 with value: 0.993006993006993.
Trial 17 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.802468867556491, 'bagging_freq': 5, 'min_child_samples': 20}. Best is trial 6 with value: 0.993006993006993.
Trial 18 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.9695792032426346, 'bagging_freq': 6, 'min_child_samples': 12}. Best is trial 6 with value: 0.993006993006993.
Trial 19 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.6296642141721495, 'bagging_freq': 2, 'min_child_samples': 43}. Best is trial 6 with value: 0.993006993006993.
Trial 20 finished with value: 0.993006993006993 and parameters: {'bagging_fraction': 0.7389023806749845, 'bagging_freq': 6, 'min_child_samples': 27}. Best is trial 6 with value: 0.993006993006993.
Trial 21 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.7502173214289396, 'bagging_freq': 6, 'min_child_samples': 29}. Best is trial 6 with value: 0.993006993006993.
Trial 22 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.8101313980093171, 'bagging_freq': 4, 'min_child_samples': 25}. Best is trial 6 with value: 0.993006993006993.
Trial 23 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.6483520745107301, 'bagging_freq': 7, 'min_child_samples': 41}. Best is trial 6 with value: 0.993006993006993.
Trial 24 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.7307397804469538, 'bagging_freq': 6, 'min_child_samples': 11}. Best is trial 6 with value: 0.993006993006993.
Trial 25 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.5408463894075148, 'bagging_freq': 5, 'min_child_samples': 5}. Best is trial 6 with value: 0.993006993006993.
Trial 26 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.8440299125110106, 'bagging_freq': 3, 'min_child_samples': 26}. Best is trial 6 with value: 0.993006993006993.
Trial 27 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.9559579466980862, 'bagging_freq': 4, 'min_child_samples': 71}. Best is trial 6 with value: 0.993006993006993.
Trial 28 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.5000226055409177, 'bagging_freq': 6, 'min_child_samples': 14}. Best is trial 6 with value: 0.993006993006993.
Trial 29 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.7196383391053872, 'bagging_freq': 1, 'min_child_samples': 23}. Best is trial 6 with value: 0.993006993006993.
Trial 30 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.933494351727057, 'bagging_freq': 5, 'min_child_samples': 36}. Best is trial 6 with value: 0.993006993006993.
Trial 31 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.6044859422440503, 'bagging_freq': 1, 'min_child_samples': 76}. Best is trial 6 with value: 0.993006993006993.
Trial 32 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.6308656436860829, 'bagging_freq': 1, 'min_child_samples': 74}. Best is trial 6 with value: 0.993006993006993.
Trial 33 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.7721281704387583, 'bagging_freq': 2, 'min_child_samples': 80}. Best is trial 6 with value: 0.993006993006993.
Trial 34 finished with value: 0.986013986013986 and parameters: {'bagging_fraction': 0.5869059040853639, 'bagging_freq': 0, 'min_child_samples': 64}. Best is trial 6 with value: 0.993006993006993.
Trial 35 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.6767415163497312, 'bagging_freq': 0, 'min_child_samples': 50}. Best is trial 6 with value: 0.993006993006993.
Trial 36 finished with value: 0.9300699300699301 and parameters: {'bagging_fraction': 0.4706390263962035, 'bagging_freq': 7, 'min_child_samples': 61}. Best is trial 6 with value: 0.993006993006993.
Trial 37 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.5551101751229023, 'bagging_freq': 6, 'min_child_samples': 64}. Best is trial 6 with value: 0.993006993006993.
Trial 38 finished with value: 0.9300699300699301 and parameters: {'bagging_fraction': 0.7019996813869348, 'bagging_freq': 5, 'min_child_samples': 86}. Best is trial 6 with value: 0.993006993006993.
Trial 39 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.47016090119278353, 'bagging_freq': 0, 'min_child_samples': 17}. Best is trial 6 with value: 0.993006993006993.
Trial 40 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.8325449334966647, 'bagging_freq': 3, 'min_child_samples': 66}. Best is trial 6 with value: 0.993006993006993.
Trial 41 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.5985375469353462, 'bagging_freq': 1, 'min_child_samples': 83}. Best is trial 6 with value: 0.993006993006993.
Trial 42 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.5804604661841842, 'bagging_freq': 0, 'min_child_samples': 93}. Best is trial 6 with value: 0.993006993006993.
Trial 43 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.6539626605693245, 'bagging_freq': 1, 'min_child_samples': 100}. Best is trial 6 with value: 0.993006993006993.
Trial 44 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.5365137214160903, 'bagging_freq': 0, 'min_child_samples': 49}. Best is trial 6 with value: 0.993006993006993.
Trial 45 finished with value: 0.986013986013986 and parameters: {'bagging_fraction': 0.42613927971828913, 'bagging_freq': 7, 'min_child_samples': 69}. Best is trial 6 with value: 0.993006993006993.
Trial 46 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.44480638416096874, 'bagging_freq': 7, 'min_child_samples': 37}. Best is trial 6 with value: 0.993006993006993.
Trial 47 finished with value: 0.9370629370629371 and parameters: {'bagging_fraction': 0.4158600768366723, 'bagging_freq': 7, 'min_child_samples': 54}. Best is trial 6 with value: 0.993006993006993.
Trial 48 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.8702520008049994, 'bagging_freq': 6, 'min_child_samples': 71}. Best is trial 6 with value: 0.993006993006993.
Trial 49 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.4957862677274165, 'bagging_freq': 7, 'min_child_samples': 56}. Best is trial 6 with value: 0.993006993006993.
Trial 50 finished with value: 0.9370629370629371 and parameters: {'bagging_fraction': 0.4019634308608421, 'bagging_freq': 4, 'min_child_samples': 65}. Best is trial 6 with value: 0.993006993006993.
Trial 51 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.6173300709242342, 'bagging_freq': 5, 'min_child_samples': 70}. Best is trial 6 with value: 0.993006993006993.
Trial 52 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.5753335831620878, 'bagging_freq': 2, 'min_child_samples': 47}. Best is trial 6 with value: 0.993006993006993.
Trial 53 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.7750082409336218, 'bagging_freq': 7, 'min_child_samples': 77}. Best is trial 6 with value: 0.993006993006993.
Trial 54 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.9993381485676393, 'bagging_freq': 3, 'min_child_samples': 16}. Best is trial 6 with value: 0.993006993006993.
Trial 55 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.5007714441585112, 'bagging_freq': 6, 'min_child_samples': 86}. Best is trial 6 with value: 0.993006993006993.
Trial 56 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.9120341532222185, 'bagging_freq': 0, 'min_child_samples': 9}. Best is trial 6 with value: 0.993006993006993.
Trial 57 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.6585614459269844, 'bagging_freq': 6, 'min_child_samples': 20}. Best is trial 6 with value: 0.993006993006993.
Trial 58 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.6980432257397087, 'bagging_freq': 4, 'min_child_samples': 61}. Best is trial 6 with value: 0.993006993006993.
Trial 59 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.52824381138549, 'bagging_freq': 1, 'min_child_samples': 27}. Best is trial 6 with value: 0.993006993006993.
Trial 60 finished with value: 0.993006993006993 and parameters: {'bagging_fraction': 0.5662107769350733, 'bagging_freq': 2, 'min_child_samples': 68}. Best is trial 6 with value: 0.993006993006993.
Trial 61 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.6346026886002749, 'bagging_freq': 2, 'min_child_samples': 67}. Best is trial 6 with value: 0.993006993006993.
Trial 62 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.5586956653766446, 'bagging_freq': 2, 'min_child_samples': 32}. Best is trial 6 with value: 0.993006993006993.
Trial 63 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.5964024389967172, 'bagging_freq': 3, 'min_child_samples': 74}. Best is trial 6 with value: 0.993006993006993.
Trial 64 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.6147914312200011, 'bagging_freq': 1, 'min_child_samples': 79}. Best is trial 6 with value: 0.993006993006993.
Trial 65 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.4475993514699611, 'bagging_freq': 3, 'min_child_samples': 69}. Best is trial 6 with value: 0.993006993006993.
Trial 66 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.751399037084398, 'bagging_freq': 2, 'min_child_samples': 58}. Best is trial 6 with value: 0.993006993006993.
Trial 67 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.6793452520129311, 'bagging_freq': 1, 'min_child_samples': 63}. Best is trial 6 with value: 0.993006993006993.
Trial 68 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.5680182811376302, 'bagging_freq': 5, 'min_child_samples': 53}. Best is trial 6 with value: 0.993006993006993.
Trial 69 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.5184386438714695, 'bagging_freq': 3, 'min_child_samples': 41}. Best is trial 6 with value: 0.993006993006993.
Trial 70 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.4855428266090689, 'bagging_freq': 7, 'min_child_samples': 22}. Best is trial 6 with value: 0.993006993006993.
Trial 71 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.8178582394717321, 'bagging_freq': 7, 'min_child_samples': 73}. Best is trial 6 with value: 0.993006993006993.
Trial 72 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.8481429270887622, 'bagging_freq': 7, 'min_child_samples': 68}. Best is trial 6 with value: 0.993006993006993.
Trial 73 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.8875048595004317, 'bagging_freq': 6, 'min_child_samples': 7}. Best is trial 6 with value: 0.993006993006993.
Trial 74 finished with value: 0.993006993006993 and parameters: {'bagging_fraction': 0.8622980232684018, 'bagging_freq': 6, 'min_child_samples': 12}. Best is trial 6 with value: 0.993006993006993.
Trial 75 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.8615059318078071, 'bagging_freq': 6, 'min_child_samples': 14}. Best is trial 6 with value: 0.993006993006993.
Trial 76 finished with value: 0.986013986013986 and parameters: {'bagging_fraction': 0.907178644293596, 'bagging_freq': 5, 'min_child_samples': 10}. Best is trial 6 with value: 0.993006993006993.
Trial 77 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.9372344748363646, 'bagging_freq': 6, 'min_child_samples': 11}. Best is trial 6 with value: 0.993006993006993.
Trial 78 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.9087020736557989, 'bagging_freq': 4, 'min_child_samples': 8}. Best is trial 6 with value: 0.993006993006993.
Trial 79 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.7877855480492073, 'bagging_freq': 5, 'min_child_samples': 13}. Best is trial 6 with value: 0.993006993006993.
Trial 80 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.7170040941684364, 'bagging_freq': 5, 'min_child_samples': 5}. Best is trial 6 with value: 0.993006993006993.
Trial 81 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.8196199705463413, 'bagging_freq': 6, 'min_child_samples': 24}. Best is trial 6 with value: 0.993006993006993.
Trial 82 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.5479853910738284, 'bagging_freq': 6, 'min_child_samples': 17}. Best is trial 6 with value: 0.993006993006993.
Trial 83 finished with value: 0.986013986013986 and parameters: {'bagging_fraction': 0.5866068461724626, 'bagging_freq': 0, 'min_child_samples': 18}. Best is trial 6 with value: 0.993006993006993.
Trial 84 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.5874605711171299, 'bagging_freq': 0, 'min_child_samples': 20}. Best is trial 6 with value: 0.993006993006993.
Trial 85 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.4237472761631634, 'bagging_freq': 0, 'min_child_samples': 29}. Best is trial 6 with value: 0.993006993006993.
Trial 86 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.939047429840626, 'bagging_freq': 6, 'min_child_samples': 10}. Best is trial 6 with value: 0.993006993006993.
Trial 87 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.9621963111146176, 'bagging_freq': 4, 'min_child_samples': 15}. Best is trial 6 with value: 0.993006993006993.
Trial 88 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.8975364859824442, 'bagging_freq': 5, 'min_child_samples': 18}. Best is trial 6 with value: 0.993006993006993.
Trial 89 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.6400780609717717, 'bagging_freq': 0, 'min_child_samples': 21}. Best is trial 6 with value: 0.993006993006993.
Trial 90 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.8640114023674834, 'bagging_freq': 7, 'min_child_samples': 7}. Best is trial 6 with value: 0.993006993006993.
Trial 91 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.6145417641199922, 'bagging_freq': 1, 'min_child_samples': 12}. Best is trial 6 with value: 0.993006993006993.
Trial 92 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.5846951374974797, 'bagging_freq': 0, 'min_child_samples': 83}. Best is trial 6 with value: 0.993006993006993.
Trial 93 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.5303229459904355, 'bagging_freq': 1, 'min_child_samples': 77}. Best is trial 6 with value: 0.993006993006993.
Trial 94 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.6680550398147228, 'bagging_freq': 2, 'min_child_samples': 18}. Best is trial 6 with value: 0.993006993006993.
Trial 95 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.9236743174044338, 'bagging_freq': 0, 'min_child_samples': 35}. Best is trial 6 with value: 0.993006993006993.
Trial 96 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.5624995459499307, 'bagging_freq': 3, 'min_child_samples': 72}. Best is trial 6 with value: 0.993006993006993.
Trial 97 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.6026762142057411, 'bagging_freq': 1, 'min_child_samples': 75}. Best is trial 6 with value: 0.993006993006993.
Trial 98 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.8422766103362683, 'bagging_freq': 6, 'min_child_samples': 63}. Best is trial 6 with value: 0.993006993006993.
Trial 99 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.5463235380713674, 'bagging_freq': 2, 'min_child_samples': 80}. Best is trial 6 with value: 0.993006993006993.

Second scenario: Have Optuna utilize already evaluated hyperparameters

In this scenario, let’s assume you have some out-of-box sets of hyperparameters and you have already evaluated them but the results are not desirable so that you are thinking of using Optuna.

Optuna has optuna.study.Study.add_trial() which lets you register those results to Optuna and then Optuna will sample hyperparameters taking them into account.

In this section, the objective is the same as the first scenario.

study = optuna.create_study(direction="maximize", pruner=optuna.pruners.MedianPruner())
study.add_trial(
    optuna.trial.create_trial(
        params={
            "bagging_fraction": 1.0,
            "bagging_freq": 0,
            "min_child_samples": 20,
        },
        distributions={
            "bagging_fraction": optuna.distributions.FloatDistribution(0.4, 1.0 + 1e-12),
            "bagging_freq": optuna.distributions.IntDistribution(0, 7),
            "min_child_samples": optuna.distributions.IntDistribution(5, 100),
        },
        value=0.94,
    )
)
study.add_trial(
    optuna.trial.create_trial(
        params={
            "bagging_fraction": 0.75,
            "bagging_freq": 5,
            "min_child_samples": 20,
        },
        distributions={
            "bagging_fraction": optuna.distributions.FloatDistribution(0.4, 1.0 + 1e-12),
            "bagging_freq": optuna.distributions.IntDistribution(0, 7),
            "min_child_samples": optuna.distributions.IntDistribution(5, 100),
        },
        value=0.95,
    )
)
study.optimize(objective, n_trials=100, timeout=600)
A new study created in memory with name: no-name-5f51cb50-1847-494c-b7b3-3ba5db4ebfe4
Trial 2 finished with value: 0.986013986013986 and parameters: {'bagging_fraction': 0.7171977207993743, 'bagging_freq': 3, 'min_child_samples': 99}. Best is trial 2 with value: 0.986013986013986.
Trial 3 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.44241958397401215, 'bagging_freq': 5, 'min_child_samples': 44}. Best is trial 2 with value: 0.986013986013986.
Trial 4 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.46051758880847454, 'bagging_freq': 4, 'min_child_samples': 26}. Best is trial 2 with value: 0.986013986013986.
Trial 5 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.6398432110196828, 'bagging_freq': 4, 'min_child_samples': 54}. Best is trial 2 with value: 0.986013986013986.
Trial 6 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.4325091136987611, 'bagging_freq': 7, 'min_child_samples': 56}. Best is trial 2 with value: 0.986013986013986.
Trial 7 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.9300164021004114, 'bagging_freq': 5, 'min_child_samples': 31}. Best is trial 2 with value: 0.986013986013986.
Trial 8 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.4108975169447958, 'bagging_freq': 1, 'min_child_samples': 74}. Best is trial 2 with value: 0.986013986013986.
Trial 9 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.9041854914013553, 'bagging_freq': 0, 'min_child_samples': 100}. Best is trial 2 with value: 0.986013986013986.
Trial 10 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.6677308508835059, 'bagging_freq': 2, 'min_child_samples': 100}. Best is trial 2 with value: 0.986013986013986.
Trial 11 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.8325428650886946, 'bagging_freq': 2, 'min_child_samples': 96}. Best is trial 2 with value: 0.986013986013986.
Trial 12 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.8198397988519719, 'bagging_freq': 0, 'min_child_samples': 83}. Best is trial 2 with value: 0.986013986013986.
Trial 13 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.5923042190948788, 'bagging_freq': 2, 'min_child_samples': 77}. Best is trial 2 with value: 0.986013986013986.
Trial 14 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.8724606381589441, 'bagging_freq': 7, 'min_child_samples': 93}. Best is trial 2 with value: 0.986013986013986.
Trial 15 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.7441251342014384, 'bagging_freq': 3, 'min_child_samples': 65}. Best is trial 2 with value: 0.986013986013986.
Trial 16 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.522929655288627, 'bagging_freq': 1, 'min_child_samples': 7}. Best is trial 2 with value: 0.986013986013986.
Trial 17 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.9807381578463127, 'bagging_freq': 3, 'min_child_samples': 86}. Best is trial 2 with value: 0.986013986013986.
Trial 18 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.7531647037282221, 'bagging_freq': 1, 'min_child_samples': 71}. Best is trial 2 with value: 0.986013986013986.
Trial 19 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.9021523230485221, 'bagging_freq': 6, 'min_child_samples': 85}. Best is trial 2 with value: 0.986013986013986.
Trial 20 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.5802681539615372, 'bagging_freq': 0, 'min_child_samples': 44}. Best is trial 2 with value: 0.986013986013986.
Trial 21 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.9218563182684318, 'bagging_freq': 6, 'min_child_samples': 88}. Best is trial 2 with value: 0.986013986013986.
Trial 22 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.8163642605483985, 'bagging_freq': 6, 'min_child_samples': 100}. Best is trial 2 with value: 0.986013986013986.
Trial 23 finished with value: 0.986013986013986 and parameters: {'bagging_fraction': 0.8962626289988075, 'bagging_freq': 6, 'min_child_samples': 90}. Best is trial 2 with value: 0.986013986013986.
Trial 24 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.8618636884345756, 'bagging_freq': 3, 'min_child_samples': 92}. Best is trial 2 with value: 0.986013986013986.
Trial 25 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.9544509169812398, 'bagging_freq': 4, 'min_child_samples': 65}. Best is trial 2 with value: 0.986013986013986.
Trial 26 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.7017826087967651, 'bagging_freq': 2, 'min_child_samples': 80}. Best is trial 2 with value: 0.986013986013986.
Trial 27 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.7921868038900602, 'bagging_freq': 5, 'min_child_samples': 94}. Best is trial 2 with value: 0.986013986013986.
Trial 28 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.8760278029289499, 'bagging_freq': 7, 'min_child_samples': 69}. Best is trial 2 with value: 0.986013986013986.
Trial 29 finished with value: 0.986013986013986 and parameters: {'bagging_fraction': 0.9937403890509202, 'bagging_freq': 0, 'min_child_samples': 90}. Best is trial 2 with value: 0.986013986013986.
Trial 30 finished with value: 0.993006993006993 and parameters: {'bagging_fraction': 0.9958444695439219, 'bagging_freq': 1, 'min_child_samples': 60}. Best is trial 30 with value: 0.993006993006993.
Trial 31 finished with value: 0.986013986013986 and parameters: {'bagging_fraction': 0.9846851528259025, 'bagging_freq': 1, 'min_child_samples': 61}. Best is trial 30 with value: 0.993006993006993.
Trial 32 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.9916178902805111, 'bagging_freq': 0, 'min_child_samples': 39}. Best is trial 30 with value: 0.993006993006993.
Trial 33 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.948049588691537, 'bagging_freq': 1, 'min_child_samples': 79}. Best is trial 30 with value: 0.993006993006993.
Trial 34 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.9975660487009674, 'bagging_freq': 0, 'min_child_samples': 90}. Best is trial 30 with value: 0.993006993006993.
Trial 35 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.9467997659455161, 'bagging_freq': 3, 'min_child_samples': 13}. Best is trial 30 with value: 0.993006993006993.
Trial 36 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.9596228835895945, 'bagging_freq': 4, 'min_child_samples': 51}. Best is trial 30 with value: 0.993006993006993.
Trial 37 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.8870550025411514, 'bagging_freq': 2, 'min_child_samples': 82}. Best is trial 30 with value: 0.993006993006993.
Trial 38 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.7685819892237906, 'bagging_freq': 5, 'min_child_samples': 33}. Best is trial 30 with value: 0.993006993006993.
Trial 39 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.7144660524038973, 'bagging_freq': 1, 'min_child_samples': 74}. Best is trial 30 with value: 0.993006993006993.
Trial 40 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.8424739391583294, 'bagging_freq': 4, 'min_child_samples': 50}. Best is trial 30 with value: 0.993006993006993.
Trial 41 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.9981739876229317, 'bagging_freq': 1, 'min_child_samples': 57}. Best is trial 30 with value: 0.993006993006993.
Trial 42 finished with value: 0.993006993006993 and parameters: {'bagging_fraction': 0.9166051012504646, 'bagging_freq': 0, 'min_child_samples': 61}. Best is trial 30 with value: 0.993006993006993.
Trial 43 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.9162389971609853, 'bagging_freq': 0, 'min_child_samples': 46}. Best is trial 30 with value: 0.993006993006993.
Trial 44 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.6465995640672522, 'bagging_freq': 0, 'min_child_samples': 61}. Best is trial 30 with value: 0.993006993006993.
Trial 45 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.4953162561797616, 'bagging_freq': 0, 'min_child_samples': 88}. Best is trial 30 with value: 0.993006993006993.
Trial 46 finished with value: 0.993006993006993 and parameters: {'bagging_fraction': 0.9685585826446171, 'bagging_freq': 2, 'min_child_samples': 96}. Best is trial 30 with value: 0.993006993006993.
Trial 47 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.9317656842096778, 'bagging_freq': 2, 'min_child_samples': 95}. Best is trial 30 with value: 0.993006993006993.
Trial 48 finished with value: 0.986013986013986 and parameters: {'bagging_fraction': 0.8975567262826742, 'bagging_freq': 3, 'min_child_samples': 24}. Best is trial 30 with value: 0.993006993006993.
Trial 49 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.8535424440452527, 'bagging_freq': 2, 'min_child_samples': 97}. Best is trial 30 with value: 0.993006993006993.
Trial 50 finished with value: 0.993006993006993 and parameters: {'bagging_fraction': 0.9660380975250139, 'bagging_freq': 3, 'min_child_samples': 77}. Best is trial 30 with value: 0.993006993006993.
Trial 51 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.9682398628774556, 'bagging_freq': 3, 'min_child_samples': 75}. Best is trial 30 with value: 0.993006993006993.
Trial 52 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.9375972657145998, 'bagging_freq': 2, 'min_child_samples': 70}. Best is trial 30 with value: 0.993006993006993.
Trial 53 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.9653668206963208, 'bagging_freq': 4, 'min_child_samples': 84}. Best is trial 30 with value: 0.993006993006993.
Trial 54 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.6049520639034417, 'bagging_freq': 3, 'min_child_samples': 98}. Best is trial 30 with value: 0.993006993006993.
Trial 55 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.923728280746842, 'bagging_freq': 1, 'min_child_samples': 58}. Best is trial 30 with value: 0.993006993006993.
Trial 56 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.8994282614187524, 'bagging_freq': 2, 'min_child_samples': 63}. Best is trial 30 with value: 0.993006993006993.
Trial 57 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.8156703273039122, 'bagging_freq': 3, 'min_child_samples': 92}. Best is trial 30 with value: 0.993006993006993.
Trial 58 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.9703640783493477, 'bagging_freq': 1, 'min_child_samples': 67}. Best is trial 30 with value: 0.993006993006993.
Trial 59 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.9150012507036406, 'bagging_freq': 6, 'min_child_samples': 78}. Best is trial 30 with value: 0.993006993006993.
Trial 60 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.5604757207447576, 'bagging_freq': 2, 'min_child_samples': 100}. Best is trial 30 with value: 0.993006993006993.
Trial 61 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.9401008307474681, 'bagging_freq': 0, 'min_child_samples': 88}. Best is trial 30 with value: 0.993006993006993.
Trial 62 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.977366572441064, 'bagging_freq': 1, 'min_child_samples': 90}. Best is trial 30 with value: 0.993006993006993.
Trial 63 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.9997146175717849, 'bagging_freq': 0, 'min_child_samples': 95}. Best is trial 30 with value: 0.993006993006993.
Trial 64 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.8796411878340968, 'bagging_freq': 1, 'min_child_samples': 82}. Best is trial 30 with value: 0.993006993006993.
Trial 65 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.9554415032807323, 'bagging_freq': 4, 'min_child_samples': 86}. Best is trial 30 with value: 0.993006993006993.
Trial 66 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.9771693870140663, 'bagging_freq': 2, 'min_child_samples': 92}. Best is trial 30 with value: 0.993006993006993.
Trial 67 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.7257526080906752, 'bagging_freq': 0, 'min_child_samples': 73}. Best is trial 30 with value: 0.993006993006993.
Trial 68 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.4010220132114989, 'bagging_freq': 7, 'min_child_samples': 53}. Best is trial 30 with value: 0.993006993006993.
Trial 69 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.6821651583050441, 'bagging_freq': 3, 'min_child_samples': 97}. Best is trial 30 with value: 0.993006993006993.
Trial 70 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.859414555077099, 'bagging_freq': 4, 'min_child_samples': 81}. Best is trial 30 with value: 0.993006993006993.
Trial 71 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.9787379738730504, 'bagging_freq': 1, 'min_child_samples': 61}. Best is trial 30 with value: 0.993006993006993.
Trial 72 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.9478296763228218, 'bagging_freq': 1, 'min_child_samples': 48}. Best is trial 30 with value: 0.993006993006993.
Trial 73 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.9148274837619021, 'bagging_freq': 0, 'min_child_samples': 39}. Best is trial 30 with value: 0.993006993006993.
Trial 74 finished with value: 0.9300699300699301 and parameters: {'bagging_fraction': 0.9849059176559297, 'bagging_freq': 1, 'min_child_samples': 56}. Best is trial 30 with value: 0.993006993006993.
Trial 75 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.9589894692028504, 'bagging_freq': 2, 'min_child_samples': 66}. Best is trial 30 with value: 0.993006993006993.
Trial 76 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.9859894030714293, 'bagging_freq': 5, 'min_child_samples': 62}. Best is trial 30 with value: 0.993006993006993.
Trial 77 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.9348846143218732, 'bagging_freq': 3, 'min_child_samples': 59}. Best is trial 30 with value: 0.993006993006993.
Trial 78 finished with value: 0.965034965034965 and parameters: {'bagging_fraction': 0.7924376461086536, 'bagging_freq': 0, 'min_child_samples': 54}. Best is trial 30 with value: 0.993006993006993.
Trial 79 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.8958465509208885, 'bagging_freq': 1, 'min_child_samples': 89}. Best is trial 30 with value: 0.993006993006993.
Trial 80 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.9971488280152702, 'bagging_freq': 0, 'min_child_samples': 76}. Best is trial 30 with value: 0.993006993006993.
Trial 81 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.9024961080736522, 'bagging_freq': 3, 'min_child_samples': 26}. Best is trial 30 with value: 0.993006993006993.
Trial 82 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.8857766371417142, 'bagging_freq': 3, 'min_child_samples': 13}. Best is trial 30 with value: 0.993006993006993.
Trial 83 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.9270881998511904, 'bagging_freq': 3, 'min_child_samples': 39}. Best is trial 30 with value: 0.993006993006993.
Trial 84 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.9617529488951939, 'bagging_freq': 2, 'min_child_samples': 43}. Best is trial 30 with value: 0.993006993006993.
Trial 85 finished with value: 0.986013986013986 and parameters: {'bagging_fraction': 0.947530853678203, 'bagging_freq': 2, 'min_child_samples': 94}. Best is trial 30 with value: 0.993006993006993.
Trial 86 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.460095164972636, 'bagging_freq': 3, 'min_child_samples': 64}. Best is trial 30 with value: 0.993006993006993.
Trial 87 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.9692248202239359, 'bagging_freq': 4, 'min_child_samples': 68}. Best is trial 30 with value: 0.993006993006993.
Trial 88 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.9062417497106116, 'bagging_freq': 2, 'min_child_samples': 100}. Best is trial 30 with value: 0.993006993006993.
Trial 89 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.9306834630856392, 'bagging_freq': 3, 'min_child_samples': 72}. Best is trial 30 with value: 0.993006993006993.
Trial 90 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.8379714742025478, 'bagging_freq': 0, 'min_child_samples': 85}. Best is trial 30 with value: 0.993006993006993.
Trial 91 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.9569501208813701, 'bagging_freq': 2, 'min_child_samples': 93}. Best is trial 30 with value: 0.993006993006993.
Trial 92 finished with value: 0.9440559440559441 and parameters: {'bagging_fraction': 0.9440096305822996, 'bagging_freq': 2, 'min_child_samples': 97}. Best is trial 30 with value: 0.993006993006993.
Trial 93 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.8683820853144817, 'bagging_freq': 3, 'min_child_samples': 92}. Best is trial 30 with value: 0.993006993006993.
Trial 94 finished with value: 0.993006993006993 and parameters: {'bagging_fraction': 0.9853049484109192, 'bagging_freq': 6, 'min_child_samples': 20}. Best is trial 30 with value: 0.993006993006993.
Trial 95 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.9854598374664709, 'bagging_freq': 6, 'min_child_samples': 22}. Best is trial 30 with value: 0.993006993006993.
Trial 96 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.9736498574720969, 'bagging_freq': 1, 'min_child_samples': 13}. Best is trial 30 with value: 0.993006993006993.
Trial 97 finished with value: 0.951048951048951 and parameters: {'bagging_fraction': 0.9912202475629893, 'bagging_freq': 7, 'min_child_samples': 22}. Best is trial 30 with value: 0.993006993006993.
Trial 98 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.9174743064036767, 'bagging_freq': 6, 'min_child_samples': 17}. Best is trial 30 with value: 0.993006993006993.
Trial 99 finished with value: 0.9790209790209791 and parameters: {'bagging_fraction': 0.9744788464822906, 'bagging_freq': 5, 'min_child_samples': 59}. Best is trial 30 with value: 0.993006993006993.
Trial 100 finished with value: 0.972027972027972 and parameters: {'bagging_fraction': 0.8907386572986555, 'bagging_freq': 6, 'min_child_samples': 28}. Best is trial 30 with value: 0.993006993006993.
Trial 101 finished with value: 0.958041958041958 and parameters: {'bagging_fraction': 0.9510559604479991, 'bagging_freq': 4, 'min_child_samples': 95}. Best is trial 30 with value: 0.993006993006993.

Total running time of the script: (0 minutes 14.804 seconds)

Gallery generated by Sphinx-Gallery