{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Example usage of `hpt` to tune model hyperparameters" ] }, { "cell_type": "code", "execution_count": 1, "id": "a95a574f", "metadata": {}, "outputs": [], "source": [ "import os\n", "import numpy as np\n", "\n", "N_SAMPLES = int(10**5)\n", "RANDOM_SEED = 42\n", "\n", "rng = np.random.RandomState(RANDOM_SEED)" ] }, { "cell_type": "code", "execution_count": 2, "id": "3519f246", "metadata": {}, "outputs": [], "source": [ "from sklearn.datasets import make_classification\n", "\n", "def generate_data(num_samples, prevalence=0.5, sensitive_prevalence=0.1, random_seed=42):\n", " \n", " # Generate features and labels with scikit-learn\n", " X, Y = make_classification(num_samples, weights=(1-prevalence, prevalence), random_state=random_seed)\n", " \n", " # Sensitive attrs\n", " rng = np.random.RandomState(random_seed)\n", " S = (rng.random(num_samples) + sensitive_prevalence).astype(int)\n", "\n", " return X, Y, S" ] }, { "cell_type": "code", "execution_count": 3, "id": "c733ef96", "metadata": {}, "outputs": [], "source": [ "X, Y, S = generate_data(num_samples=N_SAMPLES, random_seed=rng.randint(10**10))" ] }, { "cell_type": "code", "execution_count": 4, "id": "a577cc23", "metadata": {}, "outputs": [], "source": [ "# Split train, test\n", "test_size = 0.2\n", "\n", "indices = rng.permutation(N_SAMPLES)\n", "test_indices = indices[: int(test_size * N_SAMPLES)]\n", "train_indices = indices[int(test_size * N_SAMPLES): ]\n", "\n", "X_train, y_train, s_train = X[train_indices], Y[train_indices], S[train_indices]\n", "X_test, y_test, s_test = X[test_indices], Y[test_indices], S[test_indices]" ] }, { "cell_type": "markdown", "id": "bef3a427", "metadata": {}, "source": [ "## Set-up hyperparameter search space" ] }, { "cell_type": "code", "execution_count": 5, "id": "ab0a7917", "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "HYPERPARAM_SPACE_PATH = Path() / 'hyperparameter_spaces'\n", "HYPERPARAM_SPACE_PATH = HYPERPARAM_SPACE_PATH / 'sklearn.multiple_algorithms.yaml'" ] }, { "cell_type": "code", "execution_count": 6, "id": "70c9f6b5", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[I 2023-09-05 13:38:51,722] A new study created in memory with name: no-name-b114ffeb-ad7e-4fc9-ac56-d6be007b64be\n" ] } ], "source": [ "from hpt.tuner import ObjectiveFunction, OptunaTuner\n", "\n", "obj_func = ObjectiveFunction(\n", " X_train, y_train, X_test, y_test,\n", " hyperparameter_space=HYPERPARAM_SPACE_PATH,\n", " eval_metric='accuracy',\n", " s_train=s_train,\n", " s_val=s_test,\n", " threshold=0.50,\n", " alpha=1.0, # optimize only performance metric (`eval_metric='accuracy'`)\n", " other_eval_metric='equalized_odds_diff', # but still evaluate fairness metric results\n", ")\n", "\n", "tuner = OptunaTuner(obj_func) # NOTE: can pass other useful study kwargs here (e.g. storage)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run tuner and plot results" ] }, { "cell_type": "code", "execution_count": 7, "id": "b5e7d239", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e872a78ba95c4491a095da0085fd421a", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/50 [00:00'.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[I 2023-09-05 13:38:51,852] Trial 0 finished with value: 0.9099 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 0.01, 'learner_LR_tol': 9.658116684018327e-05, 'learner_LR_max_iter': 145, 'learner_LR_solver': 'liblinear'}. Best is trial 0 with value: 0.9099.\n", "[I 2023-09-05 13:38:51,979] Trial 2 finished with value: 0.89735 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 1e-05, 'learner_LR_tol': 7.820718867973598e-05, 'learner_LR_max_iter': 78, 'learner_LR_solver': 'liblinear'}. Best is trial 0 with value: 0.9099.\n", "[I 2023-09-05 13:38:52,157] Trial 3 finished with value: 0.9099 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 0.01, 'learner_LR_tol': 9.977866701242914e-05, 'learner_LR_max_iter': 490, 'learner_LR_solver': 'liblinear'}. Best is trial 0 with value: 0.9099.\n", "[I 2023-09-05 13:38:52,162] Trial 7 finished with value: 0.89735 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 1e-05, 'learner_LR_tol': 0.00029046640022955015, 'learner_LR_max_iter': 230, 'learner_LR_solver': 'liblinear'}. Best is trial 0 with value: 0.9099.\n", "[I 2023-09-05 13:38:52,170] Trial 5 finished with value: 0.9099 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 0.01, 'learner_LR_tol': 0.00044324589483900253, 'learner_LR_max_iter': 253, 'learner_LR_solver': 'liblinear'}. Best is trial 0 with value: 0.9099.\n", "[I 2023-09-05 13:38:52,220] Trial 8 finished with value: 0.90335 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 0.0001, 'learner_LR_tol': 8.250266673984556e-05, 'learner_LR_max_iter': 2043, 'learner_LR_solver': 'liblinear'}. Best is trial 0 with value: 0.9099.\n", "[I 2023-09-05 13:38:52,229] Trial 4 finished with value: 0.9083 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 0.001, 'learner_LR_tol': 0.007480056190151736, 'learner_LR_max_iter': 331, 'learner_LR_solver': 'liblinear'}. Best is trial 0 with value: 0.9099.\n", "[I 2023-09-05 13:38:52,434] Trial 13 finished with value: 0.9099 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 0.01, 'learner_LR_tol': 0.000919815910884721, 'learner_LR_max_iter': 225, 'learner_LR_solver': 'liblinear'}. Best is trial 0 with value: 0.9099.\n", "[I 2023-09-05 13:38:55,322] Trial 12 finished with value: 0.9115 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 5, 'learner_DT_criterion': 'entropy', 'learner_DT_min_samples_split': 4, 'learner_DT_min_samples_leaf': 7, 'learner_DT_splitter': 'best'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:38:55,556] Trial 18 finished with value: 0.89735 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 1e-05, 'learner_LR_tol': 0.0007496310261291808, 'learner_LR_max_iter': 148, 'learner_LR_solver': 'liblinear'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:38:55,835] Trial 17 finished with value: 0.9115 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 5, 'learner_DT_criterion': 'entropy', 'learner_DT_min_samples_split': 7, 'learner_DT_min_samples_leaf': 7, 'learner_DT_splitter': 'best'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:38:58,377] Trial 16 finished with value: 0.9075 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 147, 'learner_DT_criterion': 'gini', 'learner_DT_min_samples_split': 15, 'learner_DT_min_samples_leaf': 74, 'learner_DT_splitter': 'best'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:38:58,760] Trial 11 finished with value: 0.8938 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 15, 'learner_DT_criterion': 'gini', 'learner_DT_min_samples_split': 8, 'learner_DT_min_samples_leaf': 2, 'learner_DT_splitter': 'best'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:38:59,282] Trial 10 finished with value: 0.89815 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 148, 'learner_DT_criterion': 'gini', 'learner_DT_min_samples_split': 41, 'learner_DT_min_samples_leaf': 24, 'learner_DT_splitter': 'best'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:38:59,889] Trial 15 finished with value: 0.8988 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 17, 'learner_DT_criterion': 'gini', 'learner_DT_min_samples_split': 87, 'learner_DT_min_samples_leaf': 2, 'learner_DT_splitter': 'best'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:01,551] Trial 24 finished with value: 0.90465 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 16, 'learner_RF_max_depth': 6, 'learner_RF_criterion': 'gini', 'learner_RF_min_samples_split': 93, 'learner_RF_min_samples_leaf': 3, 'learner_RF_max_features': 'sqrt'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:01,943] Trial 6 finished with value: 0.8764 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 39, 'learner_DT_criterion': 'gini', 'learner_DT_min_samples_split': 4, 'learner_DT_min_samples_leaf': 5, 'learner_DT_splitter': 'best'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:03,247] Trial 23 finished with value: 0.91145 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 5, 'learner_DT_criterion': 'entropy', 'learner_DT_min_samples_split': 17, 'learner_DT_min_samples_leaf': 77, 'learner_DT_splitter': 'best'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:04,824] Trial 19 finished with value: 0.8851 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 134, 'learner_DT_criterion': 'entropy', 'learner_DT_min_samples_split': 31, 'learner_DT_min_samples_leaf': 2, 'learner_DT_splitter': 'best'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:05,287] Trial 28 finished with value: 0.90995 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 0.1, 'learner_LR_tol': 9.018047173931659e-05, 'learner_LR_max_iter': 91, 'learner_LR_solver': 'liblinear'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:05,742] Trial 20 finished with value: 0.8943 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 91, 'learner_DT_criterion': 'gini', 'learner_DT_min_samples_split': 6, 'learner_DT_min_samples_leaf': 16, 'learner_DT_splitter': 'best'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:06,365] Trial 30 finished with value: 0.9099 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 0.1, 'learner_LR_tol': 0.001232757989464645, 'learner_LR_max_iter': 772, 'learner_LR_solver': 'liblinear'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:07,989] Trial 21 finished with value: 0.8946 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 15, 'learner_DT_criterion': 'entropy', 'learner_DT_min_samples_split': 4, 'learner_DT_min_samples_leaf': 8, 'learner_DT_splitter': 'best'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:09,183] Trial 27 finished with value: 0.9006 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 37, 'learner_DT_criterion': 'gini', 'learner_DT_min_samples_split': 16, 'learner_DT_min_samples_leaf': 26, 'learner_DT_splitter': 'best'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:13,252] Trial 22 finished with value: 0.90785 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 148, 'learner_RF_max_depth': 6, 'learner_RF_criterion': 'gini', 'learner_RF_min_samples_split': 19, 'learner_RF_min_samples_leaf': 5, 'learner_RF_max_features': 'sqrt'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:16,732] Trial 33 finished with value: 0.91045 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 13, 'learner_RF_max_depth': 48, 'learner_RF_criterion': 'gini', 'learner_RF_min_samples_split': 91, 'learner_RF_min_samples_leaf': 38, 'learner_RF_max_features': 'sqrt'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:16,957] Trial 35 finished with value: 0.89735 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 1e-05, 'learner_LR_tol': 0.000362871828193693, 'learner_LR_max_iter': 209, 'learner_LR_solver': 'liblinear'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:25,170] Trial 32 finished with value: 0.9079 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 49, 'learner_DT_criterion': 'entropy', 'learner_DT_min_samples_split': 21, 'learner_DT_min_samples_leaf': 59, 'learner_DT_splitter': 'best'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:25,526] Trial 37 finished with value: 0.89735 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 1e-05, 'learner_LR_tol': 0.000530259062154841, 'learner_LR_max_iter': 671, 'learner_LR_solver': 'liblinear'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:28,477] Trial 34 finished with value: 0.91115 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 56, 'learner_RF_max_depth': 27, 'learner_RF_criterion': 'gini', 'learner_RF_min_samples_split': 10, 'learner_RF_min_samples_leaf': 68, 'learner_RF_max_features': 'log2'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:30,402] Trial 38 finished with value: 0.91015 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 14, 'learner_RF_max_depth': 10, 'learner_RF_criterion': 'entropy', 'learner_RF_min_samples_split': 35, 'learner_RF_min_samples_leaf': 78, 'learner_RF_max_features': 'sqrt'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:33,333] Trial 36 finished with value: 0.9036 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 68, 'learner_DT_criterion': 'gini', 'learner_DT_min_samples_split': 79, 'learner_DT_min_samples_leaf': 21, 'learner_DT_splitter': 'best'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:33,881] Trial 41 finished with value: 0.9099 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 1, 'learner_LR_tol': 0.003619103045498826, 'learner_LR_max_iter': 91, 'learner_LR_solver': 'liblinear'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:36,046] Trial 1 finished with value: 0.90855 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 377, 'learner_RF_max_depth': 7, 'learner_RF_criterion': 'entropy', 'learner_RF_min_samples_split': 15, 'learner_RF_min_samples_leaf': 2, 'learner_RF_max_features': 'sqrt'}. Best is trial 12 with value: 0.9115.\n", "[I 2023-09-05 13:39:43,929] Trial 39 finished with value: 0.91165 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 45, 'learner_RF_max_depth': 14, 'learner_RF_criterion': 'entropy', 'learner_RF_min_samples_split': 10, 'learner_RF_min_samples_leaf': 5, 'learner_RF_max_features': 'sqrt'}. Best is trial 39 with value: 0.91165.\n", "[I 2023-09-05 13:39:44,191] Trial 44 finished with value: 0.90335 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 0.0001, 'learner_LR_tol': 0.00017422069892822042, 'learner_LR_max_iter': 140, 'learner_LR_solver': 'liblinear'}. Best is trial 39 with value: 0.91165.\n", "[I 2023-09-05 13:39:44,562] Trial 40 finished with value: 0.90035 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 14, 'learner_DT_criterion': 'entropy', 'learner_DT_min_samples_split': 14, 'learner_DT_min_samples_leaf': 13, 'learner_DT_splitter': 'best'}. Best is trial 39 with value: 0.91165.\n", "[I 2023-09-05 13:39:49,234] Trial 46 finished with value: 0.9101 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 11, 'learner_RF_max_depth': 47, 'learner_RF_criterion': 'gini', 'learner_RF_min_samples_split': 18, 'learner_RF_min_samples_leaf': 12, 'learner_RF_max_features': 'log2'}. Best is trial 39 with value: 0.91165.\n", "[I 2023-09-05 13:39:49,552] Trial 47 finished with value: 0.90995 and parameters: {'learner_type': 'LR', 'learner_LR_penalty': 'l2', 'learner_LR_C': 0.1, 'learner_LR_tol': 6.167786769242655e-05, 'learner_LR_max_iter': 123, 'learner_LR_solver': 'liblinear'}. Best is trial 39 with value: 0.91165.\n", "[I 2023-09-05 13:39:51,960] Trial 43 finished with value: 0.8982 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 122, 'learner_DT_criterion': 'gini', 'learner_DT_min_samples_split': 14, 'learner_DT_min_samples_leaf': 22, 'learner_DT_splitter': 'best'}. Best is trial 39 with value: 0.91165.\n", "[I 2023-09-05 13:39:52,313] Trial 42 finished with value: 0.86655 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 37, 'learner_DT_criterion': 'entropy', 'learner_DT_min_samples_split': 6, 'learner_DT_min_samples_leaf': 3, 'learner_DT_splitter': 'best'}. Best is trial 39 with value: 0.91165.\n", "[I 2023-09-05 13:39:54,815] Trial 9 finished with value: 0.91155 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 194, 'learner_RF_max_depth': 43, 'learner_RF_criterion': 'entropy', 'learner_RF_min_samples_split': 48, 'learner_RF_min_samples_leaf': 3, 'learner_RF_max_features': 'log2'}. Best is trial 39 with value: 0.91165.\n", "[I 2023-09-05 13:39:59,263] Trial 45 finished with value: 0.895 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 51, 'learner_DT_criterion': 'entropy', 'learner_DT_min_samples_split': 66, 'learner_DT_min_samples_leaf': 2, 'learner_DT_splitter': 'best'}. Best is trial 39 with value: 0.91165.\n", "[I 2023-09-05 13:40:06,513] Trial 49 finished with value: 0.88935 and parameters: {'learner_type': 'DT', 'learner_DT_max_depth': 99, 'learner_DT_criterion': 'entropy', 'learner_DT_min_samples_split': 41, 'learner_DT_min_samples_leaf': 5, 'learner_DT_splitter': 'best'}. Best is trial 39 with value: 0.91165.\n", "[I 2023-09-05 13:40:59,312] Trial 14 finished with value: 0.90535 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 1131, 'learner_RF_max_depth': 6, 'learner_RF_criterion': 'entropy', 'learner_RF_min_samples_split': 112, 'learner_RF_min_samples_leaf': 13, 'learner_RF_max_features': 'log2'}. Best is trial 39 with value: 0.91165.\n", "[I 2023-09-05 13:41:10,522] Trial 31 finished with value: 0.91215 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 1044, 'learner_RF_max_depth': 12, 'learner_RF_criterion': 'gini', 'learner_RF_min_samples_split': 7, 'learner_RF_min_samples_leaf': 18, 'learner_RF_max_features': 'sqrt'}. Best is trial 31 with value: 0.91215.\n", "[I 2023-09-05 13:57:56,346] Trial 29 finished with value: 0.91195 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 6297, 'learner_RF_max_depth': 16, 'learner_RF_criterion': 'entropy', 'learner_RF_min_samples_split': 4, 'learner_RF_min_samples_leaf': 9, 'learner_RF_max_features': 'sqrt'}. Best is trial 31 with value: 0.91215.\n", "[I 2023-09-05 14:06:23,867] Trial 26 finished with value: 0.9117 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 13280, 'learner_RF_max_depth': 11, 'learner_RF_criterion': 'entropy', 'learner_RF_min_samples_split': 6, 'learner_RF_min_samples_leaf': 54, 'learner_RF_max_features': 'sqrt'}. Best is trial 31 with value: 0.91215.\n", "[I 2023-09-05 14:10:55,113] Trial 25 finished with value: 0.91175 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 15986, 'learner_RF_max_depth': 15, 'learner_RF_criterion': 'entropy', 'learner_RF_min_samples_split': 45, 'learner_RF_min_samples_leaf': 98, 'learner_RF_max_features': 'sqrt'}. Best is trial 31 with value: 0.91215.\n", "[I 2023-09-05 14:13:41,393] Trial 48 finished with value: 0.9118 and parameters: {'learner_type': 'RF', 'learner_RF_n_estimators': 15376, 'learner_RF_max_depth': 36, 'learner_RF_criterion': 'entropy', 'learner_RF_min_samples_split': 58, 'learner_RF_min_samples_leaf': 7, 'learner_RF_max_features': 'sqrt'}. Best is trial 31 with value: 0.91215.\n", "CPU times: user 4h 52min 56s, sys: 1min 27s, total: 4h 54min 24s\n", "Wall time: 34min 49s\n" ] } ], "source": [ "%%time\n", "tuner.optimize(n_trials=50, show_progress_bar=True, n_jobs=os.cpu_count())" ] }, { "cell_type": "code", "execution_count": 9, "id": "cd0a7ba1", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tuner.objective_function.plot(hue=\"algorithm\")" ] }, { "cell_type": "markdown", "id": "5402108d-55a1-459d-a475-fb9f2176cf27", "metadata": {}, "source": [ "---" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" }, "vscode": { "interpreter": { "hash": "b05ff64819953bb2a0207fe2e27d7330beba543526246adc2ec3c781cbfbcd0f" } } }, "nbformat": 4, "nbformat_minor": 5 }