diff --git a/examples/boston_housing_example_Gamma.ipynb b/examples/boston_housing_example_Gamma.ipynb new file mode 100644 index 0000000..e2e9c56 --- /dev/null +++ b/examples/boston_housing_example_Gamma.ipynb @@ -0,0 +1,900 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/StatMixedML/LightGBMLSS/blob/master/examples/simulation_example_Gamma.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Imports" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:39:40.836849400Z", + "start_time": "2023-05-18T06:39:40.819009700Z" + } + }, + "outputs": [], + "source": [ + "from lightgbmlss.model import *\n", + "from lightgbmlss.distributions.Gamma import *\n", + "\n", + "from sklearn import datasets\n", + "from sklearn.datasets import make_regression\n", + "from sklearn.model_selection import train_test_split" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Data" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:29:58.792846200Z", + "start_time": "2023-05-18T06:29:57.927953500Z" + } + }, + "outputs": [], + "source": [ + "housing_data = datasets.fetch_california_housing()\n", + "X, y = housing_data[\"data\"], housing_data[\"target\"]\n", + "feature_names = housing_data[\"feature_names\"]\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=123)\n", + "\n", + "dtrain = lgb.Dataset(X_train, label=y_train)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Distribution Selection" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:29:58.807805300Z", + "start_time": "2023-05-18T06:29:58.794840400Z" + } + }, + "outputs": [], + "source": [ + "# Specifies Gamma distribution with exp response function and option to stabilize Gradient/Hessian. Type ?Gamma for an overview.\n", + "lgblss = LightGBMLSS(\n", + " Gamma(stabilization=\"L2\", # Options are \"None\", \"MAD\", \"L2\".\n", + " response_fn=\"exp\") # Function to transform the concentration and rate parameters, e.g., \"exp\" or \"softplus\".\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Hyper-Parameter Optimization" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:35:09.370575100Z", + "start_time": "2023-05-18T06:29:58.929480400Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m[I 2023-05-23 17:41:52,073]\u001b[0m A new study created in memory with name: LightGBMLSS Hyper-Parameter Optimization\u001b[0m\n", + "C:\\Users\\maerzale\\.virtualenvs\\LightGBMLSS-Dam57Fpb\\lib\\site-packages\\optuna\\progress_bar.py:56: ExperimentalWarning: Progress bar is experimental (supported from v1.2.0). The interface can change in the future.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4ff99c8c7a14428bb062f25aac857776", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 00:00/05:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[32m[I 2023-05-23 17:42:04,068]\u001b[0m Trial 0 finished with value: 1809.126050616011 and parameters: {'eta': 0.06556917943832136, 'max_depth': 6, 'subsample': 0.9282793681494648, 'feature_fraction': 0.9350388744635469, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:42:15,291]\u001b[0m Trial 1 finished with value: 3898.1266625065787 and parameters: {'eta': 0.001392277344889219, 'max_depth': 10, 'subsample': 0.26517462689142796, 'feature_fraction': 0.3760548915403128, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\maerzale\\.virtualenvs\\LightGBMLSS-Dam57Fpb\\lib\\site-packages\\numpy\\core\\_methods.py:236: RuntimeWarning: invalid value encountered in subtract\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[32m[I 2023-05-23 17:42:17,880]\u001b[0m Trial 2 finished with value: 1413688.756671772 and parameters: {'eta': 0.4138998661476644, 'max_depth': 7, 'subsample': 0.27350992643803274, 'feature_fraction': 0.876987994528255, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:42:28,911]\u001b[0m Trial 3 finished with value: 4691.744909704665 and parameters: {'eta': 2.9760410905941373e-05, 'max_depth': 9, 'subsample': 0.9166666887754653, 'feature_fraction': 0.44341694358352446, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:42:40,306]\u001b[0m Trial 4 finished with value: 4179.113031775802 and parameters: {'eta': 0.0006164042978486533, 'max_depth': 10, 'subsample': 0.6444397457765347, 'feature_fraction': 0.5636495559525195, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:42:50,929]\u001b[0m Trial 5 finished with value: 2080.0764891272347 and parameters: {'eta': 0.0492308739002064, 'max_depth': 5, 'subsample': 0.6449835149718066, 'feature_fraction': 0.5607888199767759, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:43:02,175]\u001b[0m Trial 6 finished with value: 4470.9750815425705 and parameters: {'eta': 0.0002590272028333297, 'max_depth': 10, 'subsample': 0.3670250634122595, 'feature_fraction': 0.5588145159299327, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:43:04,960]\u001b[0m Trial 7 finished with value: 3633479.3440835355 and parameters: {'eta': 0.4618123251706421, 'max_depth': 10, 'subsample': 0.4281105144510474, 'feature_fraction': 0.9778666983947115, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:43:16,989]\u001b[0m Trial 8 finished with value: 3790.5134756520843 and parameters: {'eta': 0.0012580784268804222, 'max_depth': 7, 'subsample': 0.4660636346126495, 'feature_fraction': 0.7412377596303807, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:43:28,326]\u001b[0m Trial 9 finished with value: 4656.9590130887955 and parameters: {'eta': 5.173638291710696e-05, 'max_depth': 10, 'subsample': 0.6995675047024632, 'feature_fraction': 0.8290437292047752, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:43:38,027]\u001b[0m Trial 10 finished with value: 3288.5595406302964 and parameters: {'eta': 0.01588129042634339, 'max_depth': 2, 'subsample': 0.9991564523736327, 'feature_fraction': 0.280385719936899, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:43:48,397]\u001b[0m Trial 11 finished with value: 2489.7106354811744 and parameters: {'eta': 0.029675302954054603, 'max_depth': 4, 'subsample': 0.8146610333350044, 'feature_fraction': 0.6880668421228011, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:43:59,145]\u001b[0m Trial 12 finished with value: 2312.750667896554 and parameters: {'eta': 0.032955414558760374, 'max_depth': 5, 'subsample': 0.7996124096152732, 'feature_fraction': 0.6495209266473924, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:44:09,543]\u001b[0m Trial 13 finished with value: 3281.120540190617 and parameters: {'eta': 0.007140192352699519, 'max_depth': 3, 'subsample': 0.5410244693918539, 'feature_fraction': 0.9845712683874053, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:44:21,016]\u001b[0m Trial 14 finished with value: 1857.554178608031 and parameters: {'eta': 0.08423570939349966, 'max_depth': 6, 'subsample': 0.5858884452570676, 'feature_fraction': 0.7834573830641842, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:44:31,363]\u001b[0m Trial 15 finished with value: 1972.4092387977012 and parameters: {'eta': 0.09583856197356405, 'max_depth': 7, 'subsample': 0.5484196920156863, 'feature_fraction': 0.8409611215301299, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:44:38,204]\u001b[0m Trial 16 finished with value: 2391.044865610313 and parameters: {'eta': 0.16269987711661196, 'max_depth': 6, 'subsample': 0.7443945903215214, 'feature_fraction': 0.7585331713379588, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:44:40,616]\u001b[0m Trial 17 pruned. Trial was pruned at iteration 20.\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\maerzale\\.virtualenvs\\LightGBMLSS-Dam57Fpb\\lib\\site-packages\\lightgbm\\basic.py:156: RuntimeWarning: overflow encountered in cast\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[32m[I 2023-05-23 17:44:43,200]\u001b[0m Trial 18 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:44:46,025]\u001b[0m Trial 19 finished with value: 3731.6333520039675 and parameters: {'eta': 0.14900613959292786, 'max_depth': 4, 'subsample': 0.5628509386138413, 'feature_fraction': 0.9048341062849129, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:44:57,248]\u001b[0m Trial 20 finished with value: 3185.2802973283956 and parameters: {'eta': 0.005143454873520682, 'max_depth': 6, 'subsample': 0.9816723480386734, 'feature_fraction': 0.7609432112746509, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:45:08,818]\u001b[0m Trial 21 finished with value: 1944.1343126676252 and parameters: {'eta': 0.08727883996553833, 'max_depth': 7, 'subsample': 0.5858415444410444, 'feature_fraction': 0.8575950001856819, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:45:19,957]\u001b[0m Trial 22 finished with value: 1871.6793143196296 and parameters: {'eta': 0.07736892631653892, 'max_depth': 8, 'subsample': 0.6265956514093546, 'feature_fraction': 0.9989466106026821, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:45:31,130]\u001b[0m Trial 23 finished with value: 2660.7288909591007 and parameters: {'eta': 0.017089066432843497, 'max_depth': 8, 'subsample': 0.8914723238295523, 'feature_fraction': 0.9727399176682539, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:45:34,882]\u001b[0m Trial 24 finished with value: 3064.4199208136815 and parameters: {'eta': 0.18932918601785867, 'max_depth': 8, 'subsample': 0.6644210801121371, 'feature_fraction': 0.9168564500051085, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:45:46,188]\u001b[0m Trial 25 finished with value: 1838.7094522308296 and parameters: {'eta': 0.07588195943575674, 'max_depth': 6, 'subsample': 0.7572885690962375, 'feature_fraction': 0.9290954445559388, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:45:56,728]\u001b[0m Trial 26 finished with value: 2523.3039650554656 and parameters: {'eta': 0.02827901963428478, 'max_depth': 4, 'subsample': 0.7551341347301008, 'feature_fraction': 0.9158896503415246, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:45:59,391]\u001b[0m Trial 27 pruned. Trial was pruned at iteration 21.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:46:10,348]\u001b[0m Trial 28 finished with value: 1936.1599988149326 and parameters: {'eta': 0.04919324334617989, 'max_depth': 6, 'subsample': 0.8556720533864639, 'feature_fraction': 0.8699611100580005, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:46:13,138]\u001b[0m Trial 29 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:46:16,124]\u001b[0m Trial 30 pruned. Trial was pruned at iteration 21.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:46:27,894]\u001b[0m Trial 31 finished with value: 1819.1402847753507 and parameters: {'eta': 0.06576306417347916, 'max_depth': 8, 'subsample': 0.7598158712683076, 'feature_fraction': 0.9954548382878625, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:46:39,407]\u001b[0m Trial 32 finished with value: 1931.2706679219186 and parameters: {'eta': 0.08054551651707077, 'max_depth': 9, 'subsample': 0.7555606626872196, 'feature_fraction': 0.9389622208734625, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:46:42,005]\u001b[0m Trial 33 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:46:44,578]\u001b[0m Trial 34 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:46:46,919]\u001b[0m Trial 35 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:46:58,674]\u001b[0m Trial 36 finished with value: 1954.1143737806547 and parameters: {'eta': 0.04905209923587467, 'max_depth': 6, 'subsample': 0.681476825832805, 'feature_fraction': 0.9597957342841579, 'boosting': 'gbdt'}. Best is trial 0 with value: 1809.126050616011.\u001b[0m\n", + "\n", + "Hyper-Parameter Optimization successfully finished.\n", + " Number of finished trials: 37\n", + " Best trial:\n", + " Value: 1809.126050616011\n", + " Params: \n", + " eta: 0.06556917943832136\n", + " max_depth: 6\n", + " subsample: 0.9282793681494648\n", + " feature_fraction: 0.9350388744635469\n", + " boosting: gbdt\n", + " opt_rounds: 100\n" + ] + } + ], + "source": [ + "# Any LightGBM hyperparameter can be tuned, where the structure of the parameter dictionary needs to be as follows:\n", + "\n", + " # Float/Int sample_type\n", + " # {\"param_name\": [\"sample_type\", low, high, log]}\n", + " # sample_type: str, Type of sampling, e.g., \"float\" or \"int\"\n", + " # low: int, Lower endpoint of the range of suggested values\n", + " # high: int, Upper endpoint of the range of suggested values\n", + " # log: bool, Flag to sample the value from the log domain or not\n", + " # Example: {\"eta\": \"float\", low=1e-5, high=1, log=True]}\n", + "\n", + " # Categorical sample_type\n", + " # {\"param_name\": [\"sample_type\", [\"choice1\", \"choice2\", \"choice3\", \"...\"]]}\n", + " # sample_type: str, Type of sampling, either \"categorical\"\n", + " # choice1, choice2, choice3, ...: str, Possible choices for the parameter\n", + " # Example: {\"boosting\": [\"categorical\", [\"gbdt\", \"dart\"]]}\n", + "\n", + " # For parameters without tunable choice (this is needed if tree_method = \"gpu_hist\" and gpu_id needs to be specified)\n", + " # {\"param_name\": [\"none\", [value]]},\n", + " # param_name: str, Name of the parameter\n", + " # value: int, Value of the parameter\n", + " # Example: {\"gpu_id\": [\"none\", [0]]}\n", + "\n", + "param_dict = {\n", + " \"eta\": [\"float\", {\"low\": 1e-5, \"high\": 1, \"log\": True}],\n", + " \"max_depth\": [\"int\", {\"low\": 1, \"high\": 10, \"log\": False}],\n", + " \"subsample\": [\"float\", {\"low\": 0.2, \"high\": 1.0, \"log\": False}],\n", + " \"feature_fraction\": [\"float\", {\"low\": 0.2, \"high\": 1.0, \"log\": False}],\n", + " \"boosting\": [\"categorical\", [\"gbdt\"]],\n", + "}\n", + "\n", + "np.random.seed(123)\n", + "opt_param = lgblss.hyper_opt(param_dict,\n", + " dtrain,\n", + " num_boost_round=100, # Number of boosting iterations.\n", + " nfold=5, # Number of cv-folds.\n", + " early_stopping_rounds=20, # Number of early-stopping rounds\n", + " max_minutes=5, # Time budget in minutes, i.e., stop study after the given number of minutes.\n", + " n_trials=None, # The number of trials. If this argument is set to None, there is no limitation on the number of trials.\n", + " silence=False, # Controls the verbosity of the trail, i.e., user can silence the outputs of the trail.\n", + " seed=123, # Seed used to generate cv-folds.\n", + " hp_seed=None # Seed for random number generator used in the Bayesian hyperparameter search.\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Model Training" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:35:12.260385100Z", + "start_time": "2023-05-18T06:35:09.372570200Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.random.seed(123)\n", + "\n", + "opt_params = opt_param.copy()\n", + "n_rounds = opt_params[\"opt_rounds\"]\n", + "del opt_params[\"opt_rounds\"]\n", + "\n", + "# Train Model with optimized hyperparameters\n", + "lgblss.train(opt_params,\n", + " dtrain,\n", + " num_boost_round=n_rounds\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Prediction" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:35:13.557706600Z", + "start_time": "2023-05-18T06:35:12.260385100Z" + } + }, + "outputs": [], + "source": [ + "# Set seed for reproducibility\n", + "torch.manual_seed(123)\n", + "\n", + "# Number of samples to draw from predicted distribution\n", + "n_samples = 1000\n", + "quant_sel = [0.05, 0.95] # Quantiles to calculate from predicted distribution\n", + "\n", + "# Sample from predicted distribution\n", + "pred_samples = lgblss.predict(X_test,\n", + " pred_type=\"samples\",\n", + " n_samples=n_samples,\n", + " seed=123)\n", + "\n", + "# Calculate quantiles from predicted distribution\n", + "pred_quantiles = lgblss.predict(X_test,\n", + " pred_type=\"quantiles\",\n", + " n_samples=n_samples,\n", + " quantiles=quant_sel)\n", + "\n", + "# Returns predicted distributional parameters\n", + "pred_params = lgblss.predict(X_test,\n", + " pred_type=\"parameters\")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:35:13.588949200Z", + "start_time": "2023-05-18T06:35:13.557706600Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_sample0y_sample1y_sample2y_sample3y_sample4y_sample5y_sample6y_sample7y_sample8y_sample9...y_sample990y_sample991y_sample992y_sample993y_sample994y_sample995y_sample996y_sample997y_sample998y_sample999
01.9570732.2108591.5398461.4739162.2380031.7815313.4252672.6060451.4540242.231545...2.2324581.5125931.6533292.4203651.8104312.1606112.7193261.7523911.5436821.977375
11.0070660.3457600.4134931.6228041.3247741.0631451.0165610.9406671.1739470.915472...1.0894990.7469150.8187130.8077951.3759440.8914391.2946450.5786771.1959481.057028
21.1305792.9132652.2563350.9310582.7104551.4589051.4499661.7322941.3342722.258079...1.5750801.4513962.4531511.4014441.1615542.0937321.7976831.5228101.2751101.698852
31.8787123.1546593.4920281.1760491.4670541.9700851.6123032.2796912.4353511.359894...0.8342301.8343182.3401711.9506442.5142842.1786652.5147531.6471261.7309292.753849
44.2092533.4164942.3774531.9222594.5828973.4096284.8221143.7512004.5392764.927194...2.0332184.4385955.2119552.4631563.4158713.8466483.0915272.7885974.2780623.400972
\n", + "

5 rows × 1000 columns

\n", + "
" + ], + "text/plain": [ + " y_sample0 y_sample1 y_sample2 y_sample3 y_sample4 y_sample5 \n", + "0 1.957073 2.210859 1.539846 1.473916 2.238003 1.781531 \\\n", + "1 1.007066 0.345760 0.413493 1.622804 1.324774 1.063145 \n", + "2 1.130579 2.913265 2.256335 0.931058 2.710455 1.458905 \n", + "3 1.878712 3.154659 3.492028 1.176049 1.467054 1.970085 \n", + "4 4.209253 3.416494 2.377453 1.922259 4.582897 3.409628 \n", + "\n", + " y_sample6 y_sample7 y_sample8 y_sample9 ... y_sample990 y_sample991 \n", + "0 3.425267 2.606045 1.454024 2.231545 ... 2.232458 1.512593 \\\n", + "1 1.016561 0.940667 1.173947 0.915472 ... 1.089499 0.746915 \n", + "2 1.449966 1.732294 1.334272 2.258079 ... 1.575080 1.451396 \n", + "3 1.612303 2.279691 2.435351 1.359894 ... 0.834230 1.834318 \n", + "4 4.822114 3.751200 4.539276 4.927194 ... 2.033218 4.438595 \n", + "\n", + " y_sample992 y_sample993 y_sample994 y_sample995 y_sample996 \n", + "0 1.653329 2.420365 1.810431 2.160611 2.719326 \\\n", + "1 0.818713 0.807795 1.375944 0.891439 1.294645 \n", + "2 2.453151 1.401444 1.161554 2.093732 1.797683 \n", + "3 2.340171 1.950644 2.514284 2.178665 2.514753 \n", + "4 5.211955 2.463156 3.415871 3.846648 3.091527 \n", + "\n", + " y_sample997 y_sample998 y_sample999 \n", + "0 1.752391 1.543682 1.977375 \n", + "1 0.578677 1.195948 1.057028 \n", + "2 1.522810 1.275110 1.698852 \n", + "3 1.647126 1.730929 2.753849 \n", + "4 2.788597 4.278062 3.400972 \n", + "\n", + "[5 rows x 1000 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred_samples.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:35:13.604570800Z", + "start_time": "2023-05-18T06:35:13.588949200Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
quant_0.05quant_0.95
01.2730173.055063
10.5455821.557167
20.9811692.519820
31.0726902.678862
42.3588466.036986
\n", + "
" + ], + "text/plain": [ + " quant_0.05 quant_0.95\n", + "0 1.273017 3.055063\n", + "1 0.545582 1.557167\n", + "2 0.981169 2.519820\n", + "3 1.072690 2.678862\n", + "4 2.358846 6.036986" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred_quantiles.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:35:13.651435200Z", + "start_time": "2023-05-18T06:35:13.604570800Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
concentrationrate
014.4612777.006943
110.97832910.965075
212.7509287.659188
313.2790867.299364
414.2400233.599187
\n", + "
" + ], + "text/plain": [ + " concentration rate\n", + "0 14.461277 7.006943\n", + "1 10.978329 10.965075\n", + "2 12.750928 7.659188\n", + "3 13.279086 7.299364\n", + "4 14.240023 3.599187" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred_params.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# SHAP Interpretability" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:35:15.172419700Z", + "start_time": "2023-05-18T06:35:13.620191500Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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+c9/0rlzZy677DJat27N559/zi233MLq1as5//zzm3t5Tcajjz6KZVnNvYwm47HHHuPpp5/mrLPOYo899mDTpk1MmzYNKWVzL63RmD59Or/97W8ZN24cEyZMYPPmzTz44INccskl/Pvf/95phfGCBQv45JNPGDx4MFLK2N/Z22+/zS233MLZZ5/N3nvvzTvvvMNVV13Fo48+yh577NEMq244W7rOVatW8d///pfjjjuOCRMmUF1dzbPPPsuZZ57JM888Q+/evZtp5Q2nPr9Tl6qqKu655x7atm27HVeo2aFRmh2axx9/XO2///5q06ZN3raXXnpJjRw5Uq1Zs6YZV9a4bNy4MbLt5ptvVgceeKCyLGv7L2g7sGjRIrX//vurF198UQ0fPlzNmTOnuZfUqCxatEiNHDlSffzxx829lCbllltuUePHj1dSSm/btGnT1PDhw9VXX33VjCvbNoLvu+uvv1797Gc/i4z56U9/qn73u9+Ftp111lnq0ksvbfL1NRZbus6KigpVWVkZ2lZeXq4OOeQQdfvtt2+XNTYW9fmdujzwwAPqvPPO2+I4za6DjmHcwZk6dSojR46kqKjI23bYYYchpeSzzz5rxpU1LsXFxZFtAwYMoLy8nMrKyu2/oO3AHXfcwYknnkjPnj2beylNwqRJk+jatSv77bdfcy+lSUmn05He725rNbUTVy0zjLo/HpYtW8aPP/7IYYcdFtp++OGHM23aNGpqappyeY3Glq4zNzc3YiXOy8ujW7durF27timX1uhs6Vpdli1bxrPPPstVV13VxCvS7ExowbiDs3jxYnr16hXaVlhYSLt27Vi8eHGzrGl7MWPGDDp06EB+fn5zL6XRmTJlCgsWLODcc89t7qU0GbNmzaJv3748+uijHHbYYeyzzz6cffbZzJ49u7mX1qgce+yxLFy4kBdeeIGysjKWLVvG3//+dwYMGMCee+7Z3MtrMty/P5l/n3r16kUqlWLFihXbf1HbidLSUhYsWLBTuaMbwl133cW4cePo379/cy9FswOhBeMOTklJCYWFhZHthYWFlJSUNMOKtg8zZszgnXfe4fTTT2/upTQ6VVVV3HvvvUyYMMGzRLVE1q9fz+eff84bb7zBNddcw1133YUQgosvvpgNGzY09/IajWHDhnHXXXdx//33M2bMGI4//njWr1/P3/72N0zTbO7lNRmlpaUAkddwq1atANi8efN2X9P24m9/+xtCCE488cTmXkqj8+GHH/LNN99w0UUXNfdSNDsYWjBqdjhWr17Nddddx4gRIzj55JObezmNzmOPPUbbtm0ZP358cy+lSVFKUVFRwe23387YsWPZf//9ueeeewBaVMblzJkz+dOf/sTxxx/Pgw8+yG233YZSissuu4yqqqrmXp6mkZk4cSIvv/wy11xzDR07dmzu5TQq1dXV3H333Zx//vmxYUKaXRudJb2D06pVK8rKyiLbS0tLvW/yLYnS0lJ+/etfU1RUxB133FHvmJudhZUrV/Lss89y5513er9XN0azoqKCiooK8vLymnOJjUZhYSFFRUXstttu3raioiIGDBjAggULmnFljctdd93FiBEjuPzyy71te+yxB8cccwxvvPEGJ5xwQjOurulwPR9lZWW0a9fO2+56PoJx1y2FTz75hFtuuYVzzz2XY445prmX0+j861//wjAMjjzySM+CnEqlUEpRWlpKTk5OiyrnpmkYWjDu4PTq1SsSq1hWVsa6desisUM7O1VVVVx22WWUlZXxxBNPtEh37fLly0mlUlx22WWRfRdeeCE/+clPePLJJ7f7upqCPn36sGzZsth9O0tCRH1YuHAhBx10UGhbx44dKS4urvX6WwLu35/MOOvFixeTTCbp2rVr8yysiZg1axbXXHMNxxxzDBdeeGFzL6dJWLx4MUuXLmXs2LGRfQcffDDXXnstJ510UjOsTLMjoAXjDs6+++7LE088QWlpqfeNfsqUKRiGwT777NPMq2s80uk01113HYsXL+aRRx6hQ4cOzb2kJmHAgAE8+OCDoW3z58/nnnvu4brrrmPw4MHNtLLG54ADDmDSpEl89913DBgwAIBNmzbx7bffcuqppzbz6hqPzp078+2334a2rVy5kk2bNtGlS5dmWlXT061bN3r06MG7777LmDFjvO2TJ09m7733blGWqIULF3LZZZex9957c9111zX3cpqMM888M2I5feqpp1iyZAl/+tOfWmxFB0390IJxB+fEE0/kP//5D1deeSVnn302a9as4b777uOEE06gffv2zb28RuP222/no48+4rLLLqO8vJxZs2Z5+wYMGEBWVlYzrq7xKCwsZMSIEbH7Bg4cyO67776dV9R0jBkzhkGDBnHNNdcwYcIEsrOzefLJJ0kmky3K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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Partial Dependence Plot\n", + "pdp_df = pd.DataFrame(X_train, columns=feature_names)\n", + "lgblss.plot(pdp_df,\n", + " parameter=\"concentration\",\n", + " feature=feature_names[0],\n", + " plot_type=\"Partial_Dependence\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:35:16.086656500Z", + "start_time": "2023-05-18T06:35:15.174414600Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAu8AAAHrCAYAAAB/+nPaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB7rUlEQVR4nO3dd3yN1wPH8c9FEhGZTZAQe49W1VZKrdptbVqjSEd0WB1qUyl+rQrV2rNahAq1alMxWrVSW60YtSKhIYnk/v64zeW6NxIk4sr3/XrdV9zznPOc8+Qp/ebkPOcajEajEREREREReeJlyegBiIiIiIhI6ii8i4iIiIjYCYV3ERERERE7ofAuIiIiImInFN5FREREROyEwruIiIiIiJ1QeBcRERERsRMK75mA0WgkOjoabekvIiIiYt8U3jOB69ev4+7uzvXr1zN6KCIiIiLyCBTeRURERETshMK7iIiIiIidUHgXEREREbETCu8iIiIiInZC4V1ERERExE4ovIuIiIiI2AmFdxERERERO6HwLiIiIiJiJxTeRURERETshMK7iIiIiIidUHgXEREREbETCu8iIiIiInZC4V1ERERExE4ovIuIiIiI2AmFdxERERERO6HwLiIiIiJiJxTeRURERETshMK7iIiIiIidyJbRA5DH6PxVuHE7o0chIiIi8mBcnMDdJaNH8URQeM9Mek6BM9EZPQoRERGR1CuUC6YFKrz/R+E9Mzl5GY5dyuhRiIiIiMhD0pp3ERERERE7ofAuIiIiImInFN5FREREROyEwruIiIiIiJ1QeBcRERERsRMK7yIiIiIidkLhXURERETETii8i4iIiIjYCX1Ik4iIiIhkTtf+hY9nw887ICYWKheDrzpDhSIpt915FGauhx1HYd8puJ0AxsXpPmTNvN8lPDwcg8FAQEDAY+03JCQEg8FAUFDQY+1XREREJNNKTIQmI2DeFujZCEZ3gotRUHsQHD2XcvsVu2DqOjAYoHDu9B/vf5748J4UbHv37p0m5wsPDycgIIANGzakqv4///xDQEAAISEhadK/iIiIiDwGtQdCl/HJHw/ZBmGHYWZPGNwWAhvBxmGQNQsMnp/y+d99BaLmwB9joP5zaTfuFGS6ZTOHDh1iypQpFCpUiDp16lgcK126NNevX8fR0dFcdunSJaZMmQJAq1atHutYRURERCSdhGyD3B7wetU7ZT7u0KY6zN0MsfHg5JB8+9we6T1Cm574mffHKUuWLOTMmdMivIuIiIjIU2j3CahQGLLcE4crFzOtfz+SiqUzGeCpCO9Xrlzhrbfeonjx4ri6uuLg4ECePHno1KkT0dHR5npBQUG0bt0agP79+2MwGDAYDJQrVw6wXvMeEhJiPjZlyhRzfR8fH/Px5Naqv/LKKxgMBqvyyZMnU6hQIRwcHHjmmWfo1q0bcXFxNq8rJiaGnj174u/vj4ODAzly5KBKlSqsX7/+Eb5bIiIiIsL5SPD1tC5PKjt39fGOJ5WeimUzx48fZ/Hixbz88su89tprODg4sGXLFubOnctff/3Frl27AGjcuDFHjhxh5syZNGvWjFq1agHg5+dn87wvvPAC/fr1Y8yYMdSoUYNXX30VADc3t4ca5/fff897772Ht7c3b7/9NtmyZWPhwoU219/HxsZStWpVDh48SIMGDejatSvXrl1j/vz5NGrUiF9++YX69es/1DhEREREnirxtyEqxrosNh4uR1uWe+U0zbbfjAMnG1E4+38rMG7anlzNaE9FeC9Xrhz//PMPTk5OFuXdunVj+vTprFq1ildeeYXnnnuOJk2aMHPmTKpVq0bfvn3ve95ChQrRqVMnxowZQ+nSpVOsfz/x8fEMGDAAFxcX/vzzT/LlywfA559/TqlSpazqDxgwgP379zNnzhzeeOMNc/mgQYMoWbIkvXv3Zv/+/Q89HhERERF7snv3bp5//nnz+7CwMKpXr256s/UQ1Blk3SjsMPz0m2XZie+hYC6Mzg5cu3CJu+few8LCqH7rvzzp7GjZB7B9+3YqVapE1qxZAThw4AC+vr7mc0RERJCYmEj+/PkBiI6O5vTp05QtW9b2uG28T8lTEd6dnZ3Nf46Li+Pq1avcvn2bxo0bM336dDZt2sQrr7ySgSOEdevWceXKFTp06GAO7gA+Pj60b9+eCRMmWNRfvHgxfn5+1K5dm4iICItjVapUYdWqVVy/fh1XV9fHMn4RERGRjHR3cAcsA+9zBWHNYMsGfWZCHk/o18KyPI8HAAZfLzxvWR6qXr06TFtreuPnRfVyBSyOV61a1eJ96dKlLd7fnfHAtFrj7uBuNW4b71PyVIR3gIEDBzJ79mzOnDmD0Wi0OBYZGZlBo7rj0KFDADZn2ZPW1d8tIiKCuLg4/P39kz3n2bNnKVmyZNoNUkRERMQeeeaEes9Zl/l6WpcnKV8Qthw07fd+90OrO45CDicobntZdUZ7KsJ73759+eqrr6hQoQLdu3fH398fJycnTp8+zaeffkpiYmK69GvrgdQkt2/ffqRzG41G8ufPz5dffplsnXt/uhMRERGRVGpVzbRd5OLt0Oq/2e/L0bAwDJpVtNwm8vgF09cieR7/OO/xVIT3RYsW4ePjw86dO81rkADmzJljVfd+gduW+9XPndv0aVpXrlyxOnbvUpekGfKDBw9a1bW1dt3X15eoqCjatGljcU0iIiIikgZaVYOqxaHrBDgQAd6uMHEVJCTC0HaWdev+tyTn5KQ7ZacuwpxNpj//ccz0dcRC09cCPvBm7XQZ9lOxVWRSuL17hj0uLo7Ro0db1XV3dwdsB25bPDw8ANtLb8qUKUOWLFnYtGmTRfmyZcs4cuSIRVndunXx8vJi6dKlFsH+8uXL/Pjjj1bnbtmyJVFRUfTr18/muE6cOJGq8YuIiIiIDVmzwooB0LYGBC+HfrPB2w3WD4USeVNuf+IiDPzR9Npx1FSW9H7aunQbtt3MvG/evJn33nvPqtzHx4fGjRszfvx4qlSpQrNmzYiKiiI0NNTmjHWVKlXInj07c+fOxcXFBU9PT/z8/GjTpo3NfvPmzUuePHlYvXo1n3zyCb6+vri6utKtWzc8PT1p1KgRy5cv5+WXX6ZWrVocOXKEpUuXUqBAAU6ePGk+j4ODA8OGDeP999+nQoUKtG3blmzZsrFgwQLc3NysfpgICgpi06ZNjB07li1btlCzZk3c3d05deoUW7duxcnJiX379j3aN1VERETkabVxeMp1PHPC1EDT637unnFPUrssGBc/3Ngegd2E9127dpn3a7+bn58fJ0+exGg0snDhQkaOHIm7uzuvvPIKPXv2pFq1ahb1XV1d+e677xg2bBgjR47k9u3blC1bNtnwDjBjxgx69erFN998Q1xcHN7e3nTr1g3AvJXjpk2b2Lp1K0WLFuXHH3/k22+/tQjvAIGBgWTJkoXRo0fz/fff4+bmxquvvkrdunXp2LGjRV0nJye2bdvG4MGDWbhwId9++y0AXl5elClThq5duz7Mt1FERERE7JjBeO/WLPLUiY6Oxt3dnaiiAbgdu5TRwxERERFJvRJ5TUtZ/LwyeiRPhKdizbuIiIiISGag8C4iIiIiYicU3kVERERE7ITCu4iIiIiInVB4FxERERGxEwrvIiIiIiJ2QuFdRERERMRO2M2HNEkaKOgNWR0zehQiIiIiqVcoV0aP4Imi8J6ZTOgBrm4ZPQoRERGRB+PilNEjeGIovGcmvl7gpvAuIiIiYq+05l1ERERExE4ovIuIiIiI2AmFdxERERERO6HwLiIiIiJiJxTeRURERETshMK7iIiIiIidUHgXEREREbETCu8iIiIiInZC4V1ERERExE4ovIuIiIiI2AmFdxERERERO6HwLiIiIiJiJxTeRURERETsRLaMHoA8Ruevwo3bGT0KERER++DiBO4uGT0KEQsK75lJzylwJjqjRyEiIvLkK5QLpgUqvMsTR+E9Mzl5GY5dyuhRiIiIiMhD0pp3ERERERE7ofAuIiIiImInFN5FREREROyEwruIiIiIiJ1QeBcRERERsRMK7yIiIiIidkLhXURERETETii8i4iIiIjYCYV3ERERkcft2r8Q8B34dAGX9lBnEPx5PPXtD0bAK8MgZwfw6gRvjoNLUdb1zl819VPoHXBuB0Xehd4z4Mr1NLsUebwU3u/i4+NDuXLlHnu/BoOBV1555bH3KyIiIhkgMRGajIB5W6BnIxjdCS5GQe1BcPRcyu0jLkOtAXDsAozsCH2bw/JdUH8oxMXfqXfjJlT7DH7eAZ1qw/hu0LgCTFgJ9YaYxiF2J93De0hICAaDgd69e6d3V+ni448/JigoKKOHISIiIvai9kDoMj754yHbIOwwzOwJg9tCYCPYOAyyZoHB81M+/8hF8O8tWD8UPmgC/VvBgj6w9yTM3HCn3tLf4dQlUz9D20H3+jC+B3z2Ouw5Yaovdkcz73c5deoUO3futCibMWMG8+bNy6ARiYiIyFMnZBvk9oDXq94p83GHNtUhdCfExifbFIBF26FpRcjvc6es3nNQ3A8WhN0pi75p+prbw7K9r6fpq7Pjw16BZCCF97vkyJEDZ2fnjB6GiIiIPM12n4AKhSHLPTGscjGIiYUj91k6c/aKaYlNxSLWxyoXg91/33lfq7Spjw+nwfbDpuU2K3bBFyHwamUomS9trkceqycmvP/88888//zz5MiRA0dHRwoXLsyIESOs6pUrVw4fHx+OHTvGyy+/jIuLC05OTrzwwgv88ccfVvXDw8N58cUXcXZ2xtnZmWrVqrFv3z6b69vvLTMYDFy+fJnw8HAMBoP5FR4ebj5ua616UFAQBoOBkJAQi/KwsDBeeOEFnJycyJkzJ/Xq1ePUqVPJfk+Cg4MpXbo02bNnx8nJieLFi/Ptt9/e/xspIiIiT7bzkXdmv++WVHbu6v3b3l333vZXb9yZuS/tD5PfgQMRprXv/gHQ5Auo+yws7Pdo1yAZJltGDwBg2rRpBAQE4O7uTqdOnXB1dSU0NJSBAwdy/PhxZsyYYVE/NjaWF198kbJly9KnTx/+/vtv5s+fT4sWLTh58iQODg4AnD17lpdeeomoqChee+01SpUqxW+//UbdunWJjY1NcVxjxoxh2LBhuLq60qtXL3N5vnwP/pPqvn37aNCgAfHx8bRp0wZ/f39Wr15NnTp1bNZ/6623mDFjBi+88AIffPABWbNmZfny5fTs2ZPz58/b/MFGREREHrP42xAVY10WGw+Xoy3LvXKaZsJvxoGTjQiW/b9lLDfjku8v6ZiTg432DnfqJB3P62WakW9cAQr4wJYDELwCvF3hf11SvDx58mT4zHt8fDyffPIJTk5O7Ny5k++//54xY8awd+9eSpYsyaxZs/jzzz8t2ly/fp127dqxdu1ahg0bxty5c+nZsyfnzp1j/vw7D3p88sknXL16lVGjRrFw4UKGDRvG+vXradiwIdevp7xFUt++fXFycsLLy4u+ffuaXx4eHg98nR999BH//vsvc+fOZc6cOYwcOZLff/8dX19fq7rr1q1jxowZdO7cmT/++IPRo0cTFBTEvn37qFatGl999RVXrlx54DGIiIhI6sXFWYbosLAwi/fbt28nYfMB03aPd7/CDsNPv1mVX//rhOm3986OEHvb+py3/uvvrrXo27dvJyEhwfz+7/NnTX/4b3Y9IiKC06dP/9feVPbX30dN77cehKYj2dumLHzYFF6tAl915XTnKvD1MjhwxmYfBw4cIDIy0vzeog8gOjravAohue+Nze+V+khVHynJ8Jn3devWceXKFdq2bUvRokXN5c7OzvTq1Yu3336buXPnUqFCBfMxg8FgNfPcpEkTvvnmGw4cOGAu27BhAx4eHnz00UcWdb/44gt++OGH9LkgGxISEggLC6NIkSK0bt3aXJ4lSxb69+9P06ZNLepPnToVg8FAYGAgERERFseaNGnCtm3bWLVqFR07dnws4xcREcmMHB0tH+isXr26xfuqVatC5A1YM9iyYZ+ZkMcT+rWwKHYt5k/Z7I6m5S3/LX+xOGfSkhg/L8s+7lK4RgWLuharAc5HgldOylQob3o/6VfI7cFz3V63OEf+wNdhWhiEHYLS/lZ9lC5d2uL9vSsO3NzcKFu2rEXZvd8bm98r9ZGqPlKS4eH9yJEjAFYXBlCpUiUATpw4YVHu6elJzpw5Lcry5MkDYDEjffHiRYoXL07WrFkt6hYoUIAcOXI8+uBT6dSpU8TGxlKoUCGrY5UrV7YqO3bsGEaj0eaxJGfPnk3TMYqIiMhD8Mxp2unl3jJfT+vyJOULwpaDpn3W735odcdRyOFk2jUmOXmfAR83+MPGBzrtPArl78oa/0RBgo293OP/mzm+rX3e7VGGh/eHkeXep7PvYjQaH+NIbLt9+/YjtTcajRgMBmbPnm31g0eS+wV7EREReYK1qmbaLnLxdmj136zr5WhYGAbNKlquZz9+wfS1SJ47ZS2rwawNcOYy+HubytbtM+1S06vZnXrFfeHXPbAxHGrfNUn64xbT1+etJxXlyZfh4b1EiRIAVuuBAPPuMbZmrFMjV65cnDt3joSEBIsQfOrUKWJiYu7T8g6DwZDsMRcXF65du2ZVfvy45U/D/v7+ODk5Wf0GAbDaVx5M17tr1y6KFi1q9esZERERsXOtqkHV4tB1gmknGG9XmLjKNEs+tJ1l3br/Lck5OelOWf+WpqBfZxB82ARu3IIxoVCuAHR9+U69no1hxgZoNhLeb2x6YHXTAVN4r/8cVCme/tcqaS7DH1h9+eWXeeaZZ1i2bBl//31nb9LY2Fi++eYbDAYDb7zxxkOdu3bt2ly7do1vvvnGovzzzz9P9TmyZ89OdHS0zWN58+blwIEDFscvXLjAkiVLLOo5ODhQvXp1jh8/zsKFC83liYmJjBw50uq83bt3B6BPnz7Ex1t/UIOtHwJERETETmTNCisGQNsaELwc+s0GbzfTJ6aWyJtye39v2DTcNBv/6VwYvcS0m8yawZaz9iXywq4x8MrzMHczvD/NtM69bwtY8mm6XZ6kr8c2875582bee+89q3IfHx9GjRpFQEAAlSpVok2bNuatIo8cOUKXLl0sHlZ9EKNGjWLlypV88skn7Nixg5IlS/Lbb7+xf/9+XF1d7zurnuTZZ59lxYoVdOvWjTJlypAlSxa6dOmCh4cHAQEB9O3bl0qVKtG6dWsiIyNZsGABuXPnJioqyuI8X3/9NdWrV+eNN95g2bJl5MuXj9WrV1s8oZykYcOGBAQEMHnyZIoUKULjxo3Jmzcv586dY+/evezcufORl+aIiIhIOtk4POU6njlhaqDpdT93z7jfrUx+WD0o5X5K5NWe7k+Zxxbed+3axa5du6zK/fz8OHv2LB4eHowYMYKZM2dy+/Zt8uXLx/DhwxkwYMBD95kvXz42btzIe++9x9KlS1m2bBnly5dn3bp11KhRAycnpxTP8e2339KxY0fmz59PTEwMRqORevXq4eHhQZ8+fYiIiGDOnDmMGjWKXLly8dFHH5l3kblb+fLl+fXXX/nggw+YP38+Dg4OVK1alcWLF1OwYEGrfidNmkTVqlWZMGECc+fOJTY2Fjc3NwoVKvRAvzkQERERkaeHwfgkPOH5mJ09e5Z8+fLRvHlzQkNDM3o46S46Ohp3d3eiigbgduxSRg9HRETkyVcir2kZy13bNoo8CTJ8zXt6s/VhTB9//DFgWp4iIiIiImIvMny3mfRWo0YN/Pz8eP7550lISGDTpk3s3LmTkiVL0qNHj4wenoiIiIhIqj314b1+/fosWrSIzZs3ExcXh5eXF+3bt2f8+PE4ODikfAIRERERkSdEplzzntlozbuIiMgD0pp3eUI99WveRURERESeFgrvIiIiIiJ2QuFdRERERMROPPUPrMpdCnpDVseMHoWIiMiTr1CujB6BiE0K75nJhB7g6pbRoxAREbEPLil/ErvI46bwnpn4eoGbwruIiIiIvdKadxERERERO6HwLiIiIiJiJxTeRURERETshMK7iIiIiIidUHgXEREREbETCu8iIiIiInZC4V1ERERExE4ovIuIiIiI2AmFdxERERERO6HwLiIiIiJiJxTeRURERETshMK7iIiIiIidUHgXEREREbET2TJ6APIYnb8KN25n9ChEJDVcnMDdJaNHISIiTxiF98yk5xQ4E53RoxCRlBTKBdMCFd5FRMSKwntmcvIyHLuU0aMQERERkYekNe8iIiIiInZC4V1ERERExE4ovIuIiIiI2AmFdxERERERO6HwLiIiIiJiJxTeRURERETshMK7iIiIiIidUHgXEREREbETCu8iIpnJtX8h4Dvw6QIu7aHOIPjzeOrbH4yAV4ZBzg7g1QneHAeXou7f5odNYHjd1EZE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nroHVpN88skn9OjRg+HDh+Pt7W2zTvv27XFzc2PixImcO2e9v/H169e5csX0IFbdunXx8vJi6dKlREREmOtcvnyZH3/8Mc3H/9JLL+Hv788vv/xi80GGxMTENO9TRJ5yWbOa1ru3rWGaCe83G7zdTOvrS+RNub2/N2wabpqN/3SuaVlM4wqwZrDtXWhERCTNPZUz72Bamz558uT71vHw8ODbb7/lrbfeomTJkrRo0YJixYoRGRnJkSNH2LhxI7NmzaJVq1Y4ODgwbNgw3n//fSpUqEDbtm3Jli0bCxYswM3NzRzy00qWLFmYMmUKr776KnXq1KF58+aULVuWyMhIwsLCqFu3LkFBQWnap4jYuY3DU67jmROmBppe93P3jPvdyuSH1baXIt7XzPdNLxEReSRPbXhPrTfeeINChQoxePBgli9fTnR0NC4uLvj6+tKpUyeqV69urhsYGEiWLFkYPXo033//PW5ubrz66qvUrVuXjh07pvnYGjZsyObNm/nss89Ys2YNP//8M66urpQqVUp7vIuIiIhkQk/FVpFyf9oqUsTOpGarSBERyZSe2jXvIiIiIiJPG4V3ERERERE7ofAuIiIiImInFN5FREREROyEwruIiIiIiJ1QeBcRERERsRMK7yIiIiIidiLTf0hTplLQG7I6ZvQoRCQlhXJl9AhEROQJpfCemUzoAa5uGT0KEUkNF6eMHoGIiDyBFN4zE18vcFN4FxEREbFXWvMuIiIiImInFN5FREREROyEwruIiIiIiJ1QeBcRERERsRMK7yIiIiIidkLhXURERETETii8i4iIiIjYCYV3ERERERE7ofAuIiIiImInFN5FREREROyEwruIiIiIiJ1QeBcRERERsRMK7yIiIiIidiJbRg9AHqPzV+HG7YwehYjcj4sTuLtk9ChEROQJpfCemfScAmeiM3oUIpKcQrlgWqDCu4iIJEvhPTM5eRmOXcroUYiIiIjIQ9KadxERERERO6HwLiIiIiJiJxTeRURERETshMK7iIiIiIidUHgXEREREbETCu8iIiIiInZC4V1ERERExE4ovIuIiIiI2AmFdxGRzOLavxDwHfh0AZf2UGcQ/Hk89e0PRsArwyBnB/DqBG+Og0tR92/zwyYwvG5qIyIij0yfsCoikhkkJkKTEbD3FPRrAd5uMHEV1B4Eu8ZAMb/7t4+4DLUG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Nu27vn6oaa19Svy9YdNw02z8p3Nh9BJoXAHWDLactd9z0vR122HTevh7X5eibZ1dRERE0sFjn3nv0KEDkydPZsOGDVSqVImGDRuat4p0cHBg/Hjrj4MvWLAgzZo1o23btvj6+rJy5Ur27NlD/fr1adKkiblenz59+OGHH+jQoQOdOnXC0dGRX375xeKp4Ptp164dP/30E40bN6Z9+/Y4OjqyYcMGjh8/jqurq1X9UqVKsXv3bj788EMKFiyIwWDgo48+snnu3Llz069fP0aMGMFzzz1n/iEmJCSECxcuMGTIEJt71EsmtnF4ynU8c8LUQNPrfu6ecb9bmfymh0/vZ+b7ppeIiIhkuMc+8w7w66+/8sEHH5i3T1ywYAHPPfcca9eutdrjHaBevXp88cUXrF+/njFjxnD69Gm6devGsmXLLOo9++yzTJ06FXd3d7799lumTJnCCy+8wNy5c1M1rubNm/P999+TPXt2xo8fz/jx48mePTubNm3CycnJqv60adMoU6YMkydPpnfv3vTq1eu+5x8+fDjfffcdOXPm5LvvvjP/edKkSVZ7vIuIiIiI3CtNt4pMaylt5yipo60iM1Bqt4oUERERSYUMmXkXEREREZEHp/AuIiIiImInFN5FREREROzEY99t5kGULVvW5haNIiIiIiKZkWbeRURERETshMK7iIiIiIidUHgXEREREbETT/Sad0ljBb0hq2NGjyJzKZQro0cgIiIiTxGF98xkQg9wdcvoUWQ+LtafzisiIiLyMBTeMxNfL3BTeBcRERGxV1rzLiIiIiJiJxTeRURERETshMK7iIiIiIidUHgXEREREbETCu8iIiIiInZC4V1ERERExE4ovIuIiIiI2AmFdxERERERO6HwLiIiIiJiJxTeRURERETshMK7iIiIiIidUHgXEREREbETCu8iIiIiInYiW0YPQB6j81fhxu2MHkXm4uIE7i4ZPQoRERF5Sii8ZyY9p8CZ6IweReZRKBdMC1R4FxERkTSj8J6ZnLwMxy5l9ChERERE5CFpzbuIiIiIiJ1QeBcRERERsRMK7yIiIiIidkLhXURERETETii8i4iIiIjYCYV3ERERERE7ofAuIiIiImInFN5FREREROyEPqRJxB5d+xc+ng0/74CYWKhcDL7qDBWKpK79wQjoNR1+OwSO2aDJC/B1F/Bxv1PnUARM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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Feature Importance\n", + "lgblss.plot(pdp_df,\n", + " parameter=\"concentration\",\n", + " plot_type=\"Feature_Importance\")" + ] + } + ], + "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.9.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/simulation_example_NegativeBinomial.ipynb b/examples/simulation_example_NegativeBinomial.ipynb new file mode 100644 index 0000000..969997d --- /dev/null +++ b/examples/simulation_example_NegativeBinomial.ipynb @@ -0,0 +1,766 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/StatMixedML/LightGBMLSS/blob/master/examples/simulation_example_NegativeBinomial.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Imports" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:57:02.291276100Z", + "start_time": "2023-05-18T06:57:02.177579400Z" + } + }, + "outputs": [], + "source": [ + "from lightgbmlss.model import *\n", + "from lightgbmlss.distributions.NegativeBinomial import *\n", + "\n", + "from sklearn.datasets import make_regression\n", + "from sklearn.model_selection import train_test_split" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Data" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:51:53.913176400Z", + "start_time": "2023-05-18T06:51:53.050199200Z" + } + }, + "outputs": [], + "source": [ + "def custom_transform(y, constr_val):\n", + " # Apply a custom transformation to restrict y between 0 and constr_val\n", + " transformed_y = np.abs(y) # Example transformation: logarithmic\n", + " constrained_y = constr_val * transformed_y / np.max(transformed_y) # Scale to desired range\n", + " int_y = constrained_y.astype(int)\n", + " return int_y\n", + "\n", + "# Generate a custom dataset\n", + "X, y = make_regression(n_samples=5000, n_features=10, n_informative=2, random_state=123)\n", + "\n", + "# Apply the custom transformation\n", + "y = custom_transform(y, 50)\n", + "\n", + "# Split into train and test\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=123)\n", + "\n", + "dtrain = lgb.Dataset(X_train, label=y_train)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Distribution Selection" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:51:53.928136100Z", + "start_time": "2023-05-18T06:51:53.911318300Z" + } + }, + "outputs": [], + "source": [ + "# Specifies NegativeBinomial distribution with corresponding response functions and option to stabilize Gradient/Hessian. See ?NegativeBinomial for more information.\n", + "lgblss = LightGBMLSS(\n", + " NegativeBinomial(stabilization=\"None\", # Options are \"None\", \"MAD\", \"L2\".\n", + " response_fn_total_count=\"relu\", # Function to transform the total_count-parameter, e.g., \"exp\", \"softplus\" or \"relu\".\n", + " response_fn_probs=\"sigmoid\") # Function to transform the probs-parameter, e.g., \"sigmoid\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Hyper-Parameter Optimization" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:56:59.310252600Z", + "start_time": "2023-05-18T06:51:54.046821100Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m[I 2023-05-23 17:29:42,931]\u001b[0m A new study created in memory with name: LightGBMLSS Hyper-Parameter Optimization\u001b[0m\n", + "C:\\Users\\maerzale\\.virtualenvs\\LightGBMLSS-Dam57Fpb\\lib\\site-packages\\optuna\\progress_bar.py:56: ExperimentalWarning: Progress bar is experimental (supported from v1.2.0). The interface can change in the future.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "9ad4aada40064079a36e30d27877f6d9", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 00:00/05:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[32m[I 2023-05-23 17:29:45,843]\u001b[0m Trial 0 finished with value: 2362.6454823420363 and parameters: {'eta': 0.2237494745725795, 'max_depth': 8, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 21.718229204152497, 'min_sum_hessian_in_leaf': 0.41610733461582017, 'subsample': 0.5489136781162185, 'feature_fraction': 0.6795070894088597, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:29:51,154]\u001b[0m Trial 1 finished with value: 2391.3637035325364 and parameters: {'eta': 0.02993587048561261, 'max_depth': 10, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 8.375534018622261, 'min_sum_hessian_in_leaf': 0.0007753281443770188, 'subsample': 0.7819790850797737, 'feature_fraction': 0.2656157036043193, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:29:57,721]\u001b[0m Trial 2 finished with value: 2623.1299437982134 and parameters: {'eta': 0.0003193057644574507, 'max_depth': 5, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 23.97626450189067, 'min_sum_hessian_in_leaf': 3.2933540258954417, 'subsample': 0.3670045093424384, 'feature_fraction': 0.8373817369882068, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:30:05,054]\u001b[0m Trial 3 finished with value: 2627.8631382661983 and parameters: {'eta': 0.0003943692191718305, 'max_depth': 4, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 8.339211480675464, 'min_sum_hessian_in_leaf': 0.006141165700569994, 'subsample': 0.5706046622783398, 'feature_fraction': 0.6163495990468459, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:30:12,699]\u001b[0m Trial 4 finished with value: 2565.5259588715003 and parameters: {'eta': 0.0014262691550398058, 'max_depth': 5, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 7.219831849234432, 'min_sum_hessian_in_leaf': 1.5936701835149663, 'subsample': 0.5354838253750538, 'feature_fraction': 0.788024946379748, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:30:19,514]\u001b[0m Trial 5 finished with value: 2631.346853451946 and parameters: {'eta': 0.0022084824843702066, 'max_depth': 7, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 10.86638765193509, 'min_sum_hessian_in_leaf': 103.92774184129252, 'subsample': 0.3622280593782978, 'feature_fraction': 0.2389145946470812, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:30:26,608]\u001b[0m Trial 6 finished with value: 2612.9684412363945 and parameters: {'eta': 0.0008209854898713998, 'max_depth': 3, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 18.673462014081853, 'min_sum_hessian_in_leaf': 0.0010218570238958342, 'subsample': 0.41686832678116215, 'feature_fraction': 0.8114911457397536, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:30:33,724]\u001b[0m Trial 7 finished with value: 2532.562604268222 and parameters: {'eta': 0.003669296449292923, 'max_depth': 8, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 23.684189735941473, 'min_sum_hessian_in_leaf': 2.7800236286073807, 'subsample': 0.6318847745762357, 'feature_fraction': 0.4719848016495097, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:30:41,128]\u001b[0m Trial 8 finished with value: 2595.6401025229907 and parameters: {'eta': 0.0007935716589829182, 'max_depth': 10, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 14.44064799437206, 'min_sum_hessian_in_leaf': 6.703126821891454e-06, 'subsample': 0.5797709222455096, 'feature_fraction': 0.6389164300692631, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:30:48,262]\u001b[0m Trial 9 finished with value: 2640.7847464386095 and parameters: {'eta': 1.1344436912426338e-05, 'max_depth': 7, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 10.222627040352023, 'min_sum_hessian_in_leaf': 3.9161873129620988, 'subsample': 0.8997126328434504, 'feature_fraction': 0.3669305529286317, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:30:50,315]\u001b[0m Trial 10 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:30:57,316]\u001b[0m Trial 11 finished with value: 2485.0299401077405 and parameters: {'eta': 0.14061339325391398, 'max_depth': 10, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 3.3176056564845595, 'min_sum_hessian_in_leaf': 0.006341526111724655, 'subsample': 0.7866760261119364, 'feature_fraction': 0.2134887893636273, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:04,267]\u001b[0m Trial 12 finished with value: 2510.2544355205596 and parameters: {'eta': 0.05675290675580147, 'max_depth': 1, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 2.003583949003545, 'min_sum_hessian_in_leaf': 0.00016908985604525037, 'subsample': 0.7816141992035248, 'feature_fraction': 0.46873459066130746, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:11,235]\u001b[0m Trial 13 finished with value: 2434.691068953821 and parameters: {'eta': 0.035842318641714506, 'max_depth': 9, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 15.947278462239742, 'min_sum_hessian_in_leaf': 0.07586714684559995, 'subsample': 0.7081152982246103, 'feature_fraction': 0.3586290776759057, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:13,354]\u001b[0m Trial 14 finished with value: 2405.968047461268 and parameters: {'eta': 0.8255422981199733, 'max_depth': 9, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 39.50047511005906, 'min_sum_hessian_in_leaf': 3.2204109714104947e-05, 'subsample': 0.9694361903452793, 'feature_fraction': 0.5310595744689661, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:20,360]\u001b[0m Trial 15 finished with value: 2379.9450329268884 and parameters: {'eta': 0.013851953984282158, 'max_depth': 7, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 22.714437031568835, 'min_sum_hessian_in_leaf': 0.052384031718501985, 'subsample': 0.6944191500532103, 'feature_fraction': 0.6724673155456391, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:27,508]\u001b[0m Trial 16 finished with value: 2393.1921848071834 and parameters: {'eta': 0.010281869632474622, 'max_depth': 7, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 23.351756834693404, 'min_sum_hessian_in_leaf': 0.10151892027266446, 'subsample': 0.4897500323768813, 'feature_fraction': 0.6724458605458586, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:29,574]\u001b[0m Trial 17 finished with value: 2480.3819878566637 and parameters: {'eta': 0.2805850135216093, 'max_depth': 6, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 28.483058842088965, 'min_sum_hessian_in_leaf': 308.68527211100513, 'subsample': 0.6592915334148823, 'feature_fraction': 0.7329451535145914, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:32,549]\u001b[0m Trial 18 finished with value: 2377.9336991893247 and parameters: {'eta': 0.11387471034399045, 'max_depth': 6, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 20.139582479113876, 'min_sum_hessian_in_leaf': 0.06652271915542315, 'subsample': 0.46811038072509037, 'feature_fraction': 0.5628397906517216, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:35,514]\u001b[0m Trial 19 finished with value: 2388.9855898958435 and parameters: {'eta': 0.16981432110206116, 'max_depth': 3, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 18.136651877041942, 'min_sum_hessian_in_leaf': 42.072023397491115, 'subsample': 0.5025399122554826, 'feature_fraction': 0.5766245570763258, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:37,648]\u001b[0m Trial 20 finished with value: 2363.732245690417 and parameters: {'eta': 0.4372857275137455, 'max_depth': 6, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 14.073826823263609, 'min_sum_hessian_in_leaf': 0.26501464839624383, 'subsample': 0.44396373816325235, 'feature_fraction': 0.5522689203937352, 'boosting': 'gbdt'}. Best is trial 0 with value: 2362.6454823420363.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:39,863]\u001b[0m Trial 21 finished with value: 2362.524736051979 and parameters: {'eta': 0.34556990800519055, 'max_depth': 6, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 14.255512468522362, 'min_sum_hessian_in_leaf': 0.693320417184206, 'subsample': 0.45856093769809725, 'feature_fraction': 0.5465936335854907, 'boosting': 'gbdt'}. Best is trial 21 with value: 2362.524736051979.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:42,086]\u001b[0m Trial 22 finished with value: 2422.7315118540146 and parameters: {'eta': 0.36138700004612195, 'max_depth': 4, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 13.575809323111534, 'min_sum_hessian_in_leaf': 0.492364172045369, 'subsample': 0.424257577580033, 'feature_fraction': 0.5142555643940006, 'boosting': 'gbdt'}. Best is trial 21 with value: 2362.524736051979.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:44,298]\u001b[0m Trial 23 finished with value: 2326.6489839222204 and parameters: {'eta': 0.48041844540678624, 'max_depth': 8, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 13.484345479556708, 'min_sum_hessian_in_leaf': 16.431071107898838, 'subsample': 0.5624857227813972, 'feature_fraction': 0.6123630330183538, 'boosting': 'gbdt'}. Best is trial 23 with value: 2326.6489839222204.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:46,198]\u001b[0m Trial 24 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:49,638]\u001b[0m Trial 25 finished with value: 2455.753399349311 and parameters: {'eta': 0.09274107137257977, 'max_depth': 9, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 12.037440566858024, 'min_sum_hessian_in_leaf': 415.87564211338184, 'subsample': 0.5329968439672376, 'feature_fraction': 0.6180810201843444, 'boosting': 'gbdt'}. Best is trial 23 with value: 2326.6489839222204.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:51,956]\u001b[0m Trial 26 finished with value: 2337.9999985467084 and parameters: {'eta': 0.3198761042660349, 'max_depth': 8, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 17.362250870635982, 'min_sum_hessian_in_leaf': 21.916990640862718, 'subsample': 0.6307392213285038, 'feature_fraction': 0.6034895857694762, 'boosting': 'gbdt'}. Best is trial 23 with value: 2326.6489839222204.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:54,205]\u001b[0m Trial 27 finished with value: 2342.8801951807536 and parameters: {'eta': 0.37383407365164384, 'max_depth': 9, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 16.8456939886239, 'min_sum_hessian_in_leaf': 26.35122966162377, 'subsample': 0.6227501147607917, 'feature_fraction': 0.5985785240866417, 'boosting': 'gbdt'}. Best is trial 23 with value: 2326.6489839222204.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:57,606]\u001b[0m Trial 28 finished with value: 2361.158874178057 and parameters: {'eta': 0.0785487440687128, 'max_depth': 9, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 18.125916260614158, 'min_sum_hessian_in_leaf': 20.79584132909297, 'subsample': 0.6221006363725866, 'feature_fraction': 0.6066570638274086, 'boosting': 'gbdt'}. Best is trial 23 with value: 2326.6489839222204.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:31:59,727]\u001b[0m Trial 29 finished with value: 2367.1929996325844 and parameters: {'eta': 0.21238760340231297, 'max_depth': 8, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 20.92826562733092, 'min_sum_hessian_in_leaf': 18.417894683158824, 'subsample': 0.669890431142174, 'feature_fraction': 0.7294069371245535, 'boosting': 'gbdt'}. Best is trial 23 with value: 2326.6489839222204.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:02,052]\u001b[0m Trial 30 finished with value: 2394.8728840212125 and parameters: {'eta': 0.4411267672169036, 'max_depth': 9, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 5.775214524227474, 'min_sum_hessian_in_leaf': 153.1182095288567, 'subsample': 0.5975404530271493, 'feature_fraction': 0.4753151586692447, 'boosting': 'gbdt'}. Best is trial 23 with value: 2326.6489839222204.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:05,629]\u001b[0m Trial 31 finished with value: 2347.181534280952 and parameters: {'eta': 0.07872931297026926, 'max_depth': 9, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 17.549321224257636, 'min_sum_hessian_in_leaf': 17.059907860856622, 'subsample': 0.624900603204972, 'feature_fraction': 0.6061742100950961, 'boosting': 'gbdt'}. Best is trial 23 with value: 2326.6489839222204.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:08,140]\u001b[0m Trial 32 finished with value: 2328.7471642655028 and parameters: {'eta': 0.1973042598097023, 'max_depth': 10, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 16.62736748492315, 'min_sum_hessian_in_leaf': 9.125298639304418, 'subsample': 0.7202093475107586, 'feature_fraction': 0.6198991930466521, 'boosting': 'gbdt'}. Best is trial 23 with value: 2326.6489839222204.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:10,998]\u001b[0m Trial 33 finished with value: 2298.6721740924013 and parameters: {'eta': 0.17803868809627144, 'max_depth': 10, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 11.180551086747291, 'min_sum_hessian_in_leaf': 5.941223084296848, 'subsample': 0.7044395005683846, 'feature_fraction': 0.6512665609282323, 'boosting': 'gbdt'}. Best is trial 33 with value: 2298.6721740924013.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:15,761]\u001b[0m Trial 34 finished with value: 2288.310725119945 and parameters: {'eta': 0.04269902087327984, 'max_depth': 10, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 10.327585984239349, 'min_sum_hessian_in_leaf': 6.153929451386866, 'subsample': 0.7460618046807748, 'feature_fraction': 0.6979232506912373, 'boosting': 'gbdt'}. Best is trial 34 with value: 2288.310725119945.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:21,568]\u001b[0m Trial 35 finished with value: 2301.1912863650805 and parameters: {'eta': 0.032750934241078125, 'max_depth': 10, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 11.968960432565158, 'min_sum_hessian_in_leaf': 3.565962093638854, 'subsample': 0.7242452532512303, 'feature_fraction': 0.676646365887166, 'boosting': 'gbdt'}. Best is trial 34 with value: 2288.310725119945.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:26,398]\u001b[0m Trial 36 finished with value: 2278.9083548948374 and parameters: {'eta': 0.03760315712287438, 'max_depth': 10, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 10.31982551796113, 'min_sum_hessian_in_leaf': 1.8902616256990257, 'subsample': 0.7553375646342636, 'feature_fraction': 0.7675486539088038, 'boosting': 'gbdt'}. Best is trial 36 with value: 2278.9083548948374.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:31,837]\u001b[0m Trial 37 finished with value: 2269.2143955976367 and parameters: {'eta': 0.031145173663260313, 'max_depth': 10, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 8.952859571921808, 'min_sum_hessian_in_leaf': 3.0772038834652715, 'subsample': 0.7709696860517249, 'feature_fraction': 0.7701635257519885, 'boosting': 'gbdt'}. Best is trial 37 with value: 2269.2143955976367.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:33,736]\u001b[0m Trial 38 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:38,801]\u001b[0m Trial 39 finished with value: 2316.269695587194 and parameters: {'eta': 0.04173267653504825, 'max_depth': 10, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 6.89728898162554, 'min_sum_hessian_in_leaf': 77.90819993951197, 'subsample': 0.8510010952323241, 'feature_fraction': 0.8386166008506785, 'boosting': 'gbdt'}. Best is trial 37 with value: 2269.2143955976367.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:40,919]\u001b[0m Trial 40 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:43,050]\u001b[0m Trial 41 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:48,767]\u001b[0m Trial 42 finished with value: 2245.070069471738 and parameters: {'eta': 0.042173847501786106, 'max_depth': 10, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 5.6188158422858985, 'min_sum_hessian_in_leaf': 1.7629752758962243, 'subsample': 0.8016798146120535, 'feature_fraction': 0.7496454044538944, 'boosting': 'gbdt'}. Best is trial 42 with value: 2245.070069471738.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:53,119]\u001b[0m Trial 43 finished with value: 2228.159596963739 and parameters: {'eta': 0.05191998792950477, 'max_depth': 10, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 4.741057189243693, 'min_sum_hessian_in_leaf': 1.271027464320476, 'subsample': 0.8219192415951626, 'feature_fraction': 0.8296163363382973, 'boosting': 'gbdt'}. Best is trial 43 with value: 2228.159596963739.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:57,516]\u001b[0m Trial 44 finished with value: 2226.78036535566 and parameters: {'eta': 0.051477816066066946, 'max_depth': 9, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 4.376364800405991, 'min_sum_hessian_in_leaf': 0.8792254560052736, 'subsample': 0.8387685023131976, 'feature_fraction': 0.8535264518938385, 'boosting': 'gbdt'}. Best is trial 44 with value: 2226.78036535566.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:32:59,568]\u001b[0m Trial 45 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:33:07,602]\u001b[0m Trial 46 finished with value: 2075.2410532368367 and parameters: {'eta': 0.05688986586082767, 'max_depth': 9, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 0.16750442551495404, 'min_sum_hessian_in_leaf': 0.2687257222099593, 'subsample': 0.8493305271131836, 'feature_fraction': 0.878587674756591, 'boosting': 'gbdt'}. Best is trial 46 with value: 2075.2410532368367.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:33:13,825]\u001b[0m Trial 47 finished with value: 2151.618233076929 and parameters: {'eta': 0.05716208939561728, 'max_depth': 9, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 0.6168959319814218, 'min_sum_hessian_in_leaf': 0.26236498755098553, 'subsample': 0.8864865117037826, 'feature_fraction': 0.8864687211471932, 'boosting': 'gbdt'}. Best is trial 46 with value: 2075.2410532368367.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:33:19,091]\u001b[0m Trial 48 finished with value: 2163.8704917362998 and parameters: {'eta': 0.0661500125532209, 'max_depth': 9, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 0.9170210019308764, 'min_sum_hessian_in_leaf': 0.23950036814351627, 'subsample': 0.9009058592987782, 'feature_fraction': 0.8812469322199725, 'boosting': 'gbdt'}. Best is trial 46 with value: 2075.2410532368367.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:33:27,158]\u001b[0m Trial 49 finished with value: 2108.266819652561 and parameters: {'eta': 0.07664872488957572, 'max_depth': 7, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 0.35411552277915437, 'min_sum_hessian_in_leaf': 0.22189629675845274, 'subsample': 0.8804800016807428, 'feature_fraction': 0.894418132133942, 'boosting': 'gbdt'}. Best is trial 46 with value: 2075.2410532368367.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:33:34,898]\u001b[0m Trial 50 finished with value: 2055.6390948180738 and parameters: {'eta': 0.12500756616342865, 'max_depth': 8, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 0.21252077843699707, 'min_sum_hessian_in_leaf': 0.020986146460828595, 'subsample': 0.8964896790032578, 'feature_fraction': 0.888380440217222, 'boosting': 'gbdt'}. Best is trial 50 with value: 2055.6390948180738.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:33:42,905]\u001b[0m Trial 51 finished with value: 2071.960617781594 and parameters: {'eta': 0.06924549825191528, 'max_depth': 7, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 0.22672170889501356, 'min_sum_hessian_in_leaf': 0.030355401129561588, 'subsample': 0.9189651731692174, 'feature_fraction': 0.9087302856711369, 'boosting': 'gbdt'}. Best is trial 50 with value: 2055.6390948180738.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:33:51,056]\u001b[0m Trial 52 finished with value: 1984.2579611521608 and parameters: {'eta': 0.11687267868675957, 'max_depth': 7, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 0.07270388623516136, 'min_sum_hessian_in_leaf': 0.01256536556758994, 'subsample': 0.9215379815933538, 'feature_fraction': 0.8831075816856314, 'boosting': 'gbdt'}. Best is trial 52 with value: 1984.2579611521608.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:33:55,510]\u001b[0m Trial 53 finished with value: 2146.5495247821887 and parameters: {'eta': 0.12129221695006828, 'max_depth': 7, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 0.6396267929673847, 'min_sum_hessian_in_leaf': 0.014955616333887792, 'subsample': 0.9675877305859379, 'feature_fraction': 0.914541493647696, 'boosting': 'gbdt'}. Best is trial 52 with value: 1984.2579611521608.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:33:58,812]\u001b[0m Trial 54 finished with value: 2216.960939400165 and parameters: {'eta': 0.12572107433539675, 'max_depth': 7, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 2.486452625652089, 'min_sum_hessian_in_leaf': 0.022859901566637045, 'subsample': 0.9701996437587083, 'feature_fraction': 0.9435590561868864, 'boosting': 'gbdt'}. Best is trial 52 with value: 1984.2579611521608.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:34:05,163]\u001b[0m Trial 55 finished with value: 2096.381785776171 and parameters: {'eta': 0.10418381263470201, 'max_depth': 7, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 0.2894194562530933, 'min_sum_hessian_in_leaf': 0.008628756043438867, 'subsample': 0.9227174740490002, 'feature_fraction': 0.94055089663108, 'boosting': 'gbdt'}. Best is trial 52 with value: 1984.2579611521608.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:34:08,247]\u001b[0m Trial 56 finished with value: 2224.8738393418266 and parameters: {'eta': 0.11542910593282225, 'max_depth': 5, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 2.6649531436506826, 'min_sum_hessian_in_leaf': 0.0023058536323214427, 'subsample': 0.9331309196557765, 'feature_fraction': 0.9759845072852276, 'boosting': 'gbdt'}. Best is trial 52 with value: 1984.2579611521608.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:34:12,207]\u001b[0m Trial 57 finished with value: 2201.1369744407652 and parameters: {'eta': 0.09500667632743191, 'max_depth': 7, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 1.7323883280785455, 'min_sum_hessian_in_leaf': 0.006867202144082953, 'subsample': 0.934558561781809, 'feature_fraction': 0.9466733475970236, 'boosting': 'gbdt'}. Best is trial 52 with value: 1984.2579611521608.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:34:19,651]\u001b[0m Trial 58 finished with value: 1933.9365744624768 and parameters: {'eta': 0.18868995052477497, 'max_depth': 6, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 0.1067669789031166, 'min_sum_hessian_in_leaf': 0.02332933630758901, 'subsample': 0.9912837219065174, 'feature_fraction': 0.8774041235779472, 'boosting': 'gbdt'}. Best is trial 58 with value: 1933.9365744624768.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:34:22,430]\u001b[0m Trial 59 finished with value: 2258.716691864054 and parameters: {'eta': 0.24750524982553787, 'max_depth': 5, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 3.1775290438903765, 'min_sum_hessian_in_leaf': 0.01911494627612403, 'subsample': 0.9925214962908524, 'feature_fraction': 0.805754592334728, 'boosting': 'gbdt'}. Best is trial 58 with value: 1933.9365744624768.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:34:29,991]\u001b[0m Trial 60 finished with value: 1952.7434978700257 and parameters: {'eta': 0.14828485489275825, 'max_depth': 6, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 0.0589375634903722, 'min_sum_hessian_in_leaf': 0.0018433608718709821, 'subsample': 0.9262578601257356, 'feature_fraction': 0.8651514021779112, 'boosting': 'gbdt'}. Best is trial 58 with value: 1933.9365744624768.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:34:37,730]\u001b[0m Trial 61 finished with value: 1939.7417403365591 and parameters: {'eta': 0.18111930699526543, 'max_depth': 6, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 0.10458111640097839, 'min_sum_hessian_in_leaf': 0.0022072579873266725, 'subsample': 0.9211509741532398, 'feature_fraction': 0.8647453808290021, 'boosting': 'gbdt'}. Best is trial 58 with value: 1933.9365744624768.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:34:40,696]\u001b[0m Trial 62 finished with value: 2211.175665460217 and parameters: {'eta': 0.1685830542910868, 'max_depth': 6, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 1.8868049680261478, 'min_sum_hessian_in_leaf': 0.0028510296013477122, 'subsample': 0.868263507655618, 'feature_fraction': 0.8589181537801993, 'boosting': 'gbdt'}. Best is trial 58 with value: 1933.9365744624768.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:34:43,293]\u001b[0m Trial 63 finished with value: 2269.195082428441 and parameters: {'eta': 0.5506707225683988, 'max_depth': 5, 'num_leaves': 255, 'min_data_in_leaf': 20, 'min_gain_to_split': 3.0858512762478707, 'min_sum_hessian_in_leaf': 0.0006100572331300093, 'subsample': 0.9104709717863305, 'feature_fraction': 0.9166521441326464, 'boosting': 'gbdt'}. Best is trial 58 with value: 1933.9365744624768.\u001b[0m\n", + "\n", + "Hyper-Parameter Optimization successfully finished.\n", + " Number of finished trials: 64\n", + " Best trial:\n", + " Value: 1933.9365744624768\n", + " Params: \n", + " eta: 0.18868995052477497\n", + " max_depth: 6\n", + " num_leaves: 255\n", + " min_data_in_leaf: 20\n", + " min_gain_to_split: 0.1067669789031166\n", + " min_sum_hessian_in_leaf: 0.02332933630758901\n", + " subsample: 0.9912837219065174\n", + " feature_fraction: 0.8774041235779472\n", + " boosting: gbdt\n", + " opt_rounds: 100\n" + ] + } + ], + "source": [ + "# Any LightGBM hyperparameter can be tuned, where the structure of the parameter dictionary needs to be as follows:\n", + "\n", + " # Float/Int sample_type\n", + " # {\"param_name\": [\"sample_type\", low, high, log]}\n", + " # sample_type: str, Type of sampling, e.g., \"float\" or \"int\"\n", + " # low: int, Lower endpoint of the range of suggested values\n", + " # high: int, Upper endpoint of the range of suggested values\n", + " # log: bool, Flag to sample the value from the log domain or not\n", + " # Example: {\"eta\": \"float\", low=1e-5, high=1, log=True]}\n", + "\n", + " # Categorical sample_type\n", + " # {\"param_name\": [\"sample_type\", [\"choice1\", \"choice2\", \"choice3\", \"...\"]]}\n", + " # sample_type: str, Type of sampling, either \"categorical\"\n", + " # choice1, choice2, choice3, ...: str, Possible choices for the parameter\n", + " # Example: {\"boosting\": [\"categorical\", [\"gbdt\", \"dart\"]]}\n", + "\n", + " # For parameters without tunable choice (this is needed if tree_method = \"gpu_hist\" and gpu_id needs to be specified)\n", + " # {\"param_name\": [\"none\", [value]]},\n", + " # param_name: str, Name of the parameter\n", + " # value: int, Value of the parameter\n", + " # Example: {\"gpu_id\": [\"none\", [0]]}\n", + "\n", + "param_dict = {\n", + " \"eta\": [\"float\", {\"low\": 1e-5, \"high\": 1, \"log\": True}],\n", + " \"max_depth\": [\"int\", {\"low\": 1, \"high\": 10, \"log\": False}],\n", + " \"num_leaves\": [\"int\", {\"low\": 255, \"high\": 255, \"log\": False}], # set to constant for this example\n", + " \"min_data_in_leaf\": [\"int\", {\"low\": 20, \"high\": 20, \"log\": False}], # set to constant for this example\n", + " \"min_gain_to_split\": [\"float\", {\"low\": 1e-8, \"high\": 40, \"log\": False}],\n", + " \"min_sum_hessian_in_leaf\": [\"float\", {\"low\": 1e-8, \"high\": 500, \"log\": True}],\n", + " \"subsample\": [\"float\", {\"low\": 0.2, \"high\": 1.0, \"log\": False}],\n", + " \"feature_fraction\": [\"float\", {\"low\": 0.2, \"high\": 1.0, \"log\": False}],\n", + " \"boosting\": [\"categorical\", [\"gbdt\"]],\n", + "}\n", + "\n", + "np.random.seed(123)\n", + "opt_param = lgblss.hyper_opt(param_dict,\n", + " dtrain,\n", + " num_boost_round=100, # Number of boosting iterations.\n", + " nfold=5, # Number of cv-folds.\n", + " early_stopping_rounds=20, # Number of early-stopping rounds\n", + " max_minutes=5, # Time budget in minutes, i.e., stop study after the given number of minutes.\n", + " n_trials=None, # The number of trials. If this argument is set to None, there is no limitation on the number of trials.\n", + " silence=False, # Controls the verbosity of the trail, i.e., user can silence the outputs of the trail.\n", + " seed=123, # Seed used to generate cv-folds.\n", + " hp_seed=None # Seed for random number generator used in the Bayesian hyperparameter search.\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Model Training" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:57:01.202188600Z", + "start_time": "2023-05-18T06:56:59.315239400Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.random.seed(123)\n", + "\n", + "opt_params = opt_param.copy()\n", + "n_rounds = opt_params[\"opt_rounds\"]\n", + "del opt_params[\"opt_rounds\"]\n", + "\n", + "# Train Model with optimized hyperparameters\n", + "lgblss.train(opt_params,\n", + " dtrain,\n", + " num_boost_round=n_rounds\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Prediction" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:57:02.113749300Z", + "start_time": "2023-05-18T06:57:01.203185800Z" + } + }, + "outputs": [], + "source": [ + "# Set seed for reproducibility\n", + "torch.manual_seed(123)\n", + "\n", + "# Number of samples to draw from predicted distribution\n", + "n_samples = 1000\n", + "quant_sel = [0.05, 0.95] # Quantiles to calculate from predicted distribution\n", + "\n", + "# Sample from predicted distribution\n", + "pred_samples = lgblss.predict(X_test,\n", + " pred_type=\"samples\",\n", + " n_samples=n_samples,\n", + " seed=123)\n", + "\n", + "# Calculate quantiles from predicted distribution\n", + "pred_quantiles = lgblss.predict(X_test,\n", + " pred_type=\"quantiles\",\n", + " n_samples=n_samples,\n", + " quantiles=quant_sel)\n", + "\n", + "# Returns predicted distributional parameters\n", + "pred_params = lgblss.predict(X_test,\n", + " pred_type=\"parameters\")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:57:02.163617200Z", + "start_time": "2023-05-18T06:57:02.114747Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_sample0y_sample1y_sample2y_sample3y_sample4y_sample5y_sample6y_sample7y_sample8y_sample9...y_sample990y_sample991y_sample992y_sample993y_sample994y_sample995y_sample996y_sample997y_sample998y_sample999
033282027234528285232...52501026274910394738
125241930154220362531...10441462132517192717
21316211428181829138...811311640169151218
32016171510107109...22131955231312249
4510122696858...61108732425
\n", + "

5 rows × 1000 columns

\n", + "
" + ], + "text/plain": [ + " y_sample0 y_sample1 y_sample2 y_sample3 y_sample4 y_sample5 \n", + "0 33 28 20 27 23 45 \\\n", + "1 25 24 19 30 15 42 \n", + "2 13 16 21 14 28 18 \n", + "3 20 16 17 1 5 10 \n", + "4 5 10 12 2 6 9 \n", + "\n", + " y_sample6 y_sample7 y_sample8 y_sample9 ... y_sample990 y_sample991 \n", + "0 28 28 52 32 ... 52 50 \\\n", + "1 20 36 25 31 ... 10 44 \n", + "2 18 29 13 8 ... 8 11 \n", + "3 10 7 10 9 ... 22 13 \n", + "4 6 8 5 8 ... 6 1 \n", + "\n", + " y_sample992 y_sample993 y_sample994 y_sample995 y_sample996 \n", + "0 10 26 27 49 10 \\\n", + "1 14 62 13 25 17 \n", + "2 31 16 40 16 9 \n", + "3 19 5 5 23 13 \n", + "4 10 8 7 3 2 \n", + "\n", + " y_sample997 y_sample998 y_sample999 \n", + "0 39 47 38 \n", + "1 19 27 17 \n", + "2 15 12 18 \n", + "3 12 24 9 \n", + "4 4 2 5 \n", + "\n", + "[5 rows x 1000 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred_samples.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:57:02.186554200Z", + "start_time": "2023-05-18T06:57:02.146661700Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
quant_0.05quant_0.95
01358
1947
2636
3324
4115
\n", + "
" + ], + "text/plain": [ + " quant_0.05 quant_0.95\n", + "0 13 58\n", + "1 9 47\n", + "2 6 36\n", + "3 3 24\n", + "4 1 15" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred_quantiles.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:57:02.233679600Z", + "start_time": "2023-05-18T06:57:02.160625600Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
total_countprobs
06.7954830.826296
16.3908240.797698
25.6518810.767255
35.1142010.689337
44.3825650.614175
\n", + "
" + ], + "text/plain": [ + " total_count probs\n", + "0 6.795483 0.826296\n", + "1 6.390824 0.797698\n", + "2 5.651881 0.767255\n", + "3 5.114201 0.689337\n", + "4 4.382565 0.614175" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred_params.head()" + ] + } + ], + "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.9.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/simulation_example_Poisson.ipynb b/examples/simulation_example_Poisson.ipynb new file mode 100644 index 0000000..835da47 --- /dev/null +++ b/examples/simulation_example_Poisson.ipynb @@ -0,0 +1,953 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/StatMixedML/LightGBMLSS/blob/master/examples/simulation_example_Poisson.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Imports" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:51:02.442538100Z", + "start_time": "2023-05-18T06:51:02.434559700Z" + } + }, + "outputs": [], + "source": [ + "from lightgbmlss.model import *\n", + "from lightgbmlss.distributions.Poisson import *\n", + "\n", + "from sklearn.datasets import make_regression\n", + "from sklearn.model_selection import train_test_split\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Data" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:43:08.745369900Z", + "start_time": "2023-05-18T06:43:07.883394Z" + } + }, + "outputs": [], + "source": [ + "def custom_transform(y, constr_val):\n", + " # Apply a custom transformation to restrict y between 0 and constr_val\n", + " transformed_y = np.abs(y) # Example transformation: logarithmic\n", + " constrained_y = constr_val * transformed_y / np.max(transformed_y) # Scale to desired range\n", + " int_y = constrained_y.astype(int)\n", + " return int_y\n", + "\n", + "# Generate a custom dataset\n", + "X, y = make_regression(n_samples=5000, n_features=10, n_informative=2, random_state=123)\n", + "\n", + "# Apply the custom transformation\n", + "y = custom_transform(y, 50)\n", + "\n", + "# Make a dataframe for visualization\n", + "X = pd.DataFrame(X, columns=[f\"x_{i+1}\" for i in range(X.shape[1])])\n", + "\n", + "# Split into train and test\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=123)\n", + "\n", + "dtrain = lgb.Dataset(X_train, label=y_train)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Distribution Selection" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:43:08.760991300Z", + "start_time": "2023-05-18T06:43:08.745369900Z" + } + }, + "outputs": [], + "source": [ + "# Specifies Poisson distribution with relu response function and option to stabilize Gradient/Hessian.\n", + "lgblss = LightGBMLSS(\n", + " Poisson(stabilization=\"None\", # Options are \"None\", \"MAD\", \"L2\".\n", + " response_fn=\"relu\") # Function to transform the rate-parameter, e.g., \"exp\", \"softplus\" or \"relu\".\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Hyper-Parameter Optimization" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:48:09.339445300Z", + "start_time": "2023-05-18T06:43:08.760991300Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m[I 2023-05-23 17:49:20,692]\u001b[0m A new study created in memory with name: LightGBMLSS Hyper-Parameter Optimization\u001b[0m\n", + "C:\\Users\\maerzale\\.virtualenvs\\LightGBMLSS-Dam57Fpb\\lib\\site-packages\\optuna\\progress_bar.py:56: ExperimentalWarning: Progress bar is experimental (supported from v1.2.0). The interface can change in the future.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "896155058995486c92e829aa03d90f2a", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 00:00/05:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[32m[I 2023-05-23 17:49:24,165]\u001b[0m Trial 0 finished with value: 3980.3492107495294 and parameters: {'eta': 2.699359681957599e-05, 'max_depth': 6, 'subsample': 0.2999341545563561, 'feature_fraction': 0.5556034158427867, 'boosting': 'gbdt'}. Best is trial 0 with value: 3980.3492107495294.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:49:26,086]\u001b[0m Trial 1 finished with value: 2518.34168110926 and parameters: {'eta': 0.45895527487414584, 'max_depth': 4, 'subsample': 0.9457458063686266, 'feature_fraction': 0.7992492274530714, 'boosting': 'gbdt'}. Best is trial 1 with value: 2518.34168110926.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:49:28,467]\u001b[0m Trial 2 finished with value: 1973.077981251329 and parameters: {'eta': 0.1076719026212947, 'max_depth': 2, 'subsample': 0.9949902525970964, 'feature_fraction': 0.8547024470705862, 'boosting': 'gbdt'}. Best is trial 2 with value: 1973.077981251329.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:49:30,875]\u001b[0m Trial 3 finished with value: 3222.7300283960785 and parameters: {'eta': 0.02108376076622654, 'max_depth': 2, 'subsample': 0.4446423511770703, 'feature_fraction': 0.6224426341684355, 'boosting': 'gbdt'}. Best is trial 2 with value: 1973.077981251329.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:49:33,939]\u001b[0m Trial 4 finished with value: 2726.9540583834487 and parameters: {'eta': 0.12416637667735411, 'max_depth': 7, 'subsample': 0.9328713673646369, 'feature_fraction': 0.3539707901862066, 'boosting': 'gbdt'}. Best is trial 2 with value: 1973.077981251329.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:49:37,033]\u001b[0m Trial 5 finished with value: 3835.158268058169 and parameters: {'eta': 0.005223357095351933, 'max_depth': 1, 'subsample': 0.8379109985296609, 'feature_fraction': 0.9981101544369979, 'boosting': 'gbdt'}. Best is trial 2 with value: 1973.077981251329.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:49:40,269]\u001b[0m Trial 6 finished with value: 3817.048573437457 and parameters: {'eta': 0.0027739627706070196, 'max_depth': 5, 'subsample': 0.930286994682431, 'feature_fraction': 0.3119284237647043, 'boosting': 'gbdt'}. Best is trial 2 with value: 1973.077981251329.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:49:43,923]\u001b[0m Trial 7 finished with value: 3189.893060214954 and parameters: {'eta': 0.011017544852965473, 'max_depth': 9, 'subsample': 0.8816085222739356, 'feature_fraction': 0.2592839499697819, 'boosting': 'gbdt'}. Best is trial 2 with value: 1973.077981251329.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:49:45,026]\u001b[0m Trial 8 finished with value: 3529.5167951296885 and parameters: {'eta': 0.5558605312146222, 'max_depth': 6, 'subsample': 0.664453376884137, 'feature_fraction': 0.3367665412900343, 'boosting': 'gbdt'}. Best is trial 2 with value: 1973.077981251329.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:49:48,690]\u001b[0m Trial 9 finished with value: 3973.1992904924773 and parameters: {'eta': 2.386367897867079e-05, 'max_depth': 7, 'subsample': 0.7436343866982718, 'feature_fraction': 0.8531334189403488, 'boosting': 'gbdt'}. Best is trial 2 with value: 1973.077981251329.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:49:51,843]\u001b[0m Trial 10 finished with value: 1859.3452692304927 and parameters: {'eta': 0.06347344481668696, 'max_depth': 3, 'subsample': 0.5558305184948805, 'feature_fraction': 0.992559257639847, 'boosting': 'gbdt'}. Best is trial 10 with value: 1859.3452692304927.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:49:55,019]\u001b[0m Trial 11 finished with value: 1802.3385411663435 and parameters: {'eta': 0.07269085961109838, 'max_depth': 3, 'subsample': 0.5523755165229258, 'feature_fraction': 0.9987473864842598, 'boosting': 'gbdt'}. Best is trial 11 with value: 1802.3385411663435.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:49:58,132]\u001b[0m Trial 12 finished with value: 2008.5592603155278 and parameters: {'eta': 0.04907998209254754, 'max_depth': 3, 'subsample': 0.5502504139020136, 'feature_fraction': 0.9949493453306741, 'boosting': 'gbdt'}. Best is trial 11 with value: 1802.3385411663435.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:49:59,092]\u001b[0m Trial 13 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:00,108]\u001b[0m Trial 14 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:01,159]\u001b[0m Trial 15 pruned. Trial was pruned at iteration 23.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:04,608]\u001b[0m Trial 16 finished with value: 1912.255969192346 and parameters: {'eta': 0.2519424480924615, 'max_depth': 4, 'subsample': 0.6019480162652984, 'feature_fraction': 0.7139868847784355, 'boosting': 'gbdt'}. Best is trial 11 with value: 1802.3385411663435.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:08,220]\u001b[0m Trial 17 finished with value: 1800.8913916628667 and parameters: {'eta': 0.026159728338340717, 'max_depth': 10, 'subsample': 0.23799334215586387, 'feature_fraction': 0.8942419948865727, 'boosting': 'gbdt'}. Best is trial 17 with value: 1800.8913916628667.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:11,947]\u001b[0m Trial 18 finished with value: 2039.1537636382716 and parameters: {'eta': 0.012837167175775474, 'max_depth': 10, 'subsample': 0.2861282857022663, 'feature_fraction': 0.8994980050638184, 'boosting': 'gbdt'}. Best is trial 17 with value: 1800.8913916628667.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:14,222]\u001b[0m Trial 19 finished with value: 2096.0079586617685 and parameters: {'eta': 0.16357712449435033, 'max_depth': 8, 'subsample': 0.24153404836673487, 'feature_fraction': 0.9064201648101173, 'boosting': 'gbdt'}. Best is trial 17 with value: 1800.8913916628667.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:15,224]\u001b[0m Trial 20 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:18,737]\u001b[0m Trial 21 finished with value: 1789.6468540051435 and parameters: {'eta': 0.03755745374776891, 'max_depth': 5, 'subsample': 0.35845869524506735, 'feature_fraction': 0.946992170413161, 'boosting': 'gbdt'}. Best is trial 21 with value: 1789.6468540051435.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:19,891]\u001b[0m Trial 22 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:22,188]\u001b[0m Trial 23 finished with value: 2405.5590005979275 and parameters: {'eta': 0.27616911056666227, 'max_depth': 7, 'subsample': 0.37414700238468257, 'feature_fraction': 0.854103557834457, 'boosting': 'gbdt'}. Best is trial 21 with value: 1789.6468540051435.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:26,013]\u001b[0m Trial 24 finished with value: 1750.4546912365124 and parameters: {'eta': 0.04141995048299225, 'max_depth': 8, 'subsample': 0.32350560020697755, 'feature_fraction': 0.9369940306356884, 'boosting': 'gbdt'}. Best is trial 24 with value: 1750.4546912365124.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:30,003]\u001b[0m Trial 25 finished with value: 1825.8962731262175 and parameters: {'eta': 0.02604108091301939, 'max_depth': 9, 'subsample': 0.20148712591697931, 'feature_fraction': 0.8054311195431573, 'boosting': 'gbdt'}. Best is trial 24 with value: 1750.4546912365124.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:31,249]\u001b[0m Trial 26 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:32,439]\u001b[0m Trial 27 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:34,489]\u001b[0m Trial 28 finished with value: 2241.862650625325 and parameters: {'eta': 0.2091822249381417, 'max_depth': 8, 'subsample': 0.25429587380716545, 'feature_fraction': 0.8233788791342402, 'boosting': 'gbdt'}. Best is trial 24 with value: 1750.4546912365124.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:35,490]\u001b[0m Trial 29 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:36,472]\u001b[0m Trial 30 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:39,956]\u001b[0m Trial 31 finished with value: 1688.9717224880667 and parameters: {'eta': 0.08031009016924785, 'max_depth': 5, 'subsample': 0.44664268600013013, 'feature_fraction': 0.9495697003314675, 'boosting': 'gbdt'}. Best is trial 31 with value: 1688.9717224880667.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:43,896]\u001b[0m Trial 32 finished with value: 1748.948818393838 and parameters: {'eta': 0.04179120993400561, 'max_depth': 5, 'subsample': 0.4447991267112251, 'feature_fraction': 0.9423869685081693, 'boosting': 'gbdt'}. Best is trial 31 with value: 1688.9717224880667.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:47,470]\u001b[0m Trial 33 finished with value: 1674.627830651402 and parameters: {'eta': 0.1092207671064788, 'max_depth': 5, 'subsample': 0.4381528854095832, 'feature_fraction': 0.9472757074178997, 'boosting': 'gbdt'}. Best is trial 33 with value: 1674.627830651402.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:50,852]\u001b[0m Trial 34 finished with value: 1643.3783244356266 and parameters: {'eta': 0.08979529354451304, 'max_depth': 5, 'subsample': 0.4298193072212186, 'feature_fraction': 0.8659637792996855, 'boosting': 'gbdt'}. Best is trial 34 with value: 1643.3783244356266.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:54,244]\u001b[0m Trial 35 finished with value: 1763.4122611204846 and parameters: {'eta': 0.10523696174612765, 'max_depth': 6, 'subsample': 0.45123286116918215, 'feature_fraction': 0.8637194427050581, 'boosting': 'gbdt'}. Best is trial 34 with value: 1643.3783244356266.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:56,271]\u001b[0m Trial 36 finished with value: 2013.4887388830334 and parameters: {'eta': 0.3648803862328835, 'max_depth': 4, 'subsample': 0.475849472696358, 'feature_fraction': 0.7981758402356571, 'boosting': 'gbdt'}. Best is trial 34 with value: 1643.3783244356266.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:50:59,783]\u001b[0m Trial 37 finished with value: 1752.0996934024934 and parameters: {'eta': 0.11894371172218482, 'max_depth': 5, 'subsample': 0.4005001405170632, 'feature_fraction': 0.8718292943515381, 'boosting': 'gbdt'}. Best is trial 34 with value: 1643.3783244356266.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:03,403]\u001b[0m Trial 38 finished with value: 1751.9842725764497 and parameters: {'eta': 0.09947677667048685, 'max_depth': 6, 'subsample': 0.490590870502015, 'feature_fraction': 0.9565691734521639, 'boosting': 'gbdt'}. Best is trial 34 with value: 1643.3783244356266.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:04,502]\u001b[0m Trial 39 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:08,020]\u001b[0m Trial 40 finished with value: 1800.4519696660864 and parameters: {'eta': 0.16761210673059446, 'max_depth': 4, 'subsample': 0.4943410198967817, 'feature_fraction': 0.8818995342733525, 'boosting': 'gbdt'}. Best is trial 34 with value: 1643.3783244356266.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:11,405]\u001b[0m Trial 41 finished with value: 1613.1536991611197 and parameters: {'eta': 0.06826235287955465, 'max_depth': 5, 'subsample': 0.420359262989728, 'feature_fraction': 0.9545025235726183, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:15,007]\u001b[0m Trial 42 finished with value: 1633.7762816623977 and parameters: {'eta': 0.08921427334759761, 'max_depth': 5, 'subsample': 0.41199838466683164, 'feature_fraction': 0.9623379126458551, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:17,543]\u001b[0m Trial 43 finished with value: 1810.5383652519401 and parameters: {'eta': 0.09936770667792444, 'max_depth': 7, 'subsample': 0.3915607133253813, 'feature_fraction': 0.9625447105496714, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:21,249]\u001b[0m Trial 44 finished with value: 1723.8437483773146 and parameters: {'eta': 0.0753029355861983, 'max_depth': 6, 'subsample': 0.4077169991481429, 'feature_fraction': 0.8981938660912558, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:22,631]\u001b[0m Trial 45 pruned. Trial was pruned at iteration 34.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:25,939]\u001b[0m Trial 46 finished with value: 1635.1324440642884 and parameters: {'eta': 0.16197824770088326, 'max_depth': 4, 'subsample': 0.42836803379593047, 'feature_fraction': 0.9647320477310738, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:26,981]\u001b[0m Trial 47 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:28,064]\u001b[0m Trial 48 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:30,218]\u001b[0m Trial 49 finished with value: 1906.8899110262676 and parameters: {'eta': 0.48562785804696945, 'max_depth': 3, 'subsample': 0.3876885637323186, 'feature_fraction': 0.9110497473714594, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:32,911]\u001b[0m Trial 50 finished with value: 1679.5954359133714 and parameters: {'eta': 0.2365664369991201, 'max_depth': 4, 'subsample': 0.46989860524557564, 'feature_fraction': 0.976052531202607, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:35,118]\u001b[0m Trial 51 finished with value: 1796.2139051378654 and parameters: {'eta': 0.28422275888650295, 'max_depth': 4, 'subsample': 0.47179866254034725, 'feature_fraction': 0.9964797219502293, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:38,377]\u001b[0m Trial 52 finished with value: 1631.3898590226456 and parameters: {'eta': 0.15533112963610093, 'max_depth': 4, 'subsample': 0.5146305131312789, 'feature_fraction': 0.9716596394449465, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:39,287]\u001b[0m Trial 53 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:42,200]\u001b[0m Trial 54 pruned. Trial was pruned at iteration 78.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:43,221]\u001b[0m Trial 55 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:46,378]\u001b[0m Trial 56 finished with value: 1641.3046530849438 and parameters: {'eta': 0.11314103393874166, 'max_depth': 4, 'subsample': 0.5618255685654434, 'feature_fraction': 0.8945115338632039, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:49,135]\u001b[0m Trial 57 finished with value: 1729.3530425734123 and parameters: {'eta': 0.1568324695034597, 'max_depth': 4, 'subsample': 0.5809283469974645, 'feature_fraction': 0.8891366422359686, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:50,505]\u001b[0m Trial 58 pruned. Trial was pruned at iteration 36.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:51,647]\u001b[0m Trial 59 pruned. Trial was pruned at iteration 23.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:52,608]\u001b[0m Trial 60 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:56,088]\u001b[0m Trial 61 finished with value: 1652.0812659880844 and parameters: {'eta': 0.09022372778946038, 'max_depth': 5, 'subsample': 0.464081626268277, 'feature_fraction': 0.9354757486696555, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:51:58,351]\u001b[0m Trial 62 finished with value: 1844.167258844327 and parameters: {'eta': 0.23618478883265465, 'max_depth': 5, 'subsample': 0.46919565092245996, 'feature_fraction': 0.9238989507559477, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:01,521]\u001b[0m Trial 63 finished with value: 1669.3322564280165 and parameters: {'eta': 0.14019823582896124, 'max_depth': 4, 'subsample': 0.5040327375480566, 'feature_fraction': 0.9649276652586276, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:02,741]\u001b[0m Trial 64 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:03,802]\u001b[0m Trial 65 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:04,763]\u001b[0m Trial 66 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:05,793]\u001b[0m Trial 67 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:06,761]\u001b[0m Trial 68 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:09,679]\u001b[0m Trial 69 finished with value: 1734.0258121726613 and parameters: {'eta': 0.19870123599007436, 'max_depth': 3, 'subsample': 0.5513675458314182, 'feature_fraction': 0.9357713039042574, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:10,772]\u001b[0m Trial 70 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:13,492]\u001b[0m Trial 71 finished with value: 1673.9021412210343 and parameters: {'eta': 0.12797428338568972, 'max_depth': 4, 'subsample': 0.504138599554762, 'feature_fraction': 0.976043129513024, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:16,614]\u001b[0m Trial 72 finished with value: 1756.8449184912236 and parameters: {'eta': 0.145302530074595, 'max_depth': 5, 'subsample': 0.4854274605664581, 'feature_fraction': 0.9562371020572519, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:17,854]\u001b[0m Trial 73 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:21,281]\u001b[0m Trial 74 finished with value: 1654.0924045327563 and parameters: {'eta': 0.11730201675330273, 'max_depth': 4, 'subsample': 0.5120221945493588, 'feature_fraction': 0.9305843991144697, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:22,315]\u001b[0m Trial 75 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:23,349]\u001b[0m Trial 76 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:25,375]\u001b[0m Trial 77 pruned. Trial was pruned at iteration 57.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:28,578]\u001b[0m Trial 78 finished with value: 1687.9019611596116 and parameters: {'eta': 0.211987643138902, 'max_depth': 3, 'subsample': 0.37878079226941086, 'feature_fraction': 0.9246544597540306, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:29,956]\u001b[0m Trial 79 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:31,058]\u001b[0m Trial 80 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:34,228]\u001b[0m Trial 81 finished with value: 1621.7059193985976 and parameters: {'eta': 0.1281061906912468, 'max_depth': 4, 'subsample': 0.49692426841862347, 'feature_fraction': 0.9526476982117121, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:35,166]\u001b[0m Trial 82 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:36,939]\u001b[0m Trial 83 pruned. Trial was pruned at iteration 45.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:40,006]\u001b[0m Trial 84 finished with value: 1710.95554582482 and parameters: {'eta': 0.3103534643704688, 'max_depth': 3, 'subsample': 0.5183898062284562, 'feature_fraction': 0.9808275740627064, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:42,976]\u001b[0m Trial 85 finished with value: 1649.7344422552815 and parameters: {'eta': 0.12550933264460645, 'max_depth': 4, 'subsample': 0.43755380095124585, 'feature_fraction': 0.9531127896417276, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:43,964]\u001b[0m Trial 86 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:45,208]\u001b[0m Trial 87 pruned. Trial was pruned at iteration 30.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:46,252]\u001b[0m Trial 88 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:47,333]\u001b[0m Trial 89 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:48,385]\u001b[0m Trial 90 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:51,433]\u001b[0m Trial 91 finished with value: 1669.1807506406974 and parameters: {'eta': 0.12972117193589527, 'max_depth': 4, 'subsample': 0.4820281670079518, 'feature_fraction': 0.9280405365663502, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:53,977]\u001b[0m Trial 92 finished with value: 1644.3213417057705 and parameters: {'eta': 0.10335423983688893, 'max_depth': 4, 'subsample': 0.4955795867451968, 'feature_fraction': 0.9769771500848161, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:52:57,387]\u001b[0m Trial 93 finished with value: 1644.1687325991254 and parameters: {'eta': 0.09462798289505757, 'max_depth': 5, 'subsample': 0.4778247837643533, 'feature_fraction': 0.9815195363465108, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:00,588]\u001b[0m Trial 94 finished with value: 1645.0215990881638 and parameters: {'eta': 0.18272783495553896, 'max_depth': 4, 'subsample': 0.4092495638927149, 'feature_fraction': 0.9796954515130953, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:03,613]\u001b[0m Trial 95 finished with value: 1653.4181130088684 and parameters: {'eta': 0.2718209965748566, 'max_depth': 3, 'subsample': 0.4901093507016783, 'feature_fraction': 0.9837081935210223, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:05,852]\u001b[0m Trial 96 pruned. Trial was pruned at iteration 59.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:06,809]\u001b[0m Trial 97 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:08,638]\u001b[0m Trial 98 pruned. Trial was pruned at iteration 54.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:09,675]\u001b[0m Trial 99 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:13,658]\u001b[0m Trial 100 finished with value: 1718.887515642936 and parameters: {'eta': 0.1825819234671453, 'max_depth': 4, 'subsample': 0.3438060707358511, 'feature_fraction': 0.9493912434499308, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:17,634]\u001b[0m Trial 101 finished with value: 1620.1600042413713 and parameters: {'eta': 0.11393636928116825, 'max_depth': 4, 'subsample': 0.43748478299369964, 'feature_fraction': 0.9566187556238437, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:18,722]\u001b[0m Trial 102 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:20,909]\u001b[0m Trial 103 pruned. Trial was pruned at iteration 59.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:24,141]\u001b[0m Trial 104 finished with value: 1643.828663400553 and parameters: {'eta': 0.09978817449723257, 'max_depth': 5, 'subsample': 0.40770827862747494, 'feature_fraction': 0.9821094051425081, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:25,168]\u001b[0m Trial 105 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:26,191]\u001b[0m Trial 106 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:27,386]\u001b[0m Trial 107 pruned. Trial was pruned at iteration 25.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:28,536]\u001b[0m Trial 108 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:29,437]\u001b[0m Trial 109 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:30,444]\u001b[0m Trial 110 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:33,864]\u001b[0m Trial 111 finished with value: 1636.9327834198057 and parameters: {'eta': 0.15628335040331998, 'max_depth': 4, 'subsample': 0.4141697969132473, 'feature_fraction': 0.9789443795063648, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:35,880]\u001b[0m Trial 112 pruned. Trial was pruned at iteration 53.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:39,048]\u001b[0m Trial 113 finished with value: 1666.3609944712393 and parameters: {'eta': 0.14277802397471012, 'max_depth': 4, 'subsample': 0.442274170153352, 'feature_fraction': 0.9648296704923597, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:42,389]\u001b[0m Trial 114 finished with value: 1629.887737082267 and parameters: {'eta': 0.10688436516079522, 'max_depth': 4, 'subsample': 0.4161239936077784, 'feature_fraction': 0.987208383633686, 'boosting': 'gbdt'}. Best is trial 41 with value: 1613.1536991611197.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:45,548]\u001b[0m Trial 115 finished with value: 1602.071680743745 and parameters: {'eta': 0.07596366590755924, 'max_depth': 5, 'subsample': 0.40986478186150205, 'feature_fraction': 0.9985802759008446, 'boosting': 'gbdt'}. Best is trial 115 with value: 1602.071680743745.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:46,445]\u001b[0m Trial 116 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:47,374]\u001b[0m Trial 117 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:48,486]\u001b[0m Trial 118 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:51,180]\u001b[0m Trial 119 pruned. Trial was pruned at iteration 53.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:52,187]\u001b[0m Trial 120 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:55,613]\u001b[0m Trial 121 finished with value: 1619.0276106717215 and parameters: {'eta': 0.07973977811944279, 'max_depth': 5, 'subsample': 0.44043347488361556, 'feature_fraction': 0.9848734325802573, 'boosting': 'gbdt'}. Best is trial 115 with value: 1602.071680743745.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:53:59,320]\u001b[0m Trial 122 finished with value: 1629.854960635958 and parameters: {'eta': 0.0798107407342345, 'max_depth': 5, 'subsample': 0.44115896977836355, 'feature_fraction': 0.9990389448350798, 'boosting': 'gbdt'}. Best is trial 115 with value: 1602.071680743745.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:54:00,421]\u001b[0m Trial 123 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:54:01,589]\u001b[0m Trial 124 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:54:03,040]\u001b[0m Trial 125 pruned. Trial was pruned at iteration 20.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:54:04,524]\u001b[0m Trial 126 pruned. Trial was pruned at iteration 25.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:54:07,653]\u001b[0m Trial 127 finished with value: 1626.324531133902 and parameters: {'eta': 0.12870518065106204, 'max_depth': 4, 'subsample': 0.378397726390322, 'feature_fraction': 0.9869622583067622, 'boosting': 'gbdt'}. Best is trial 115 with value: 1602.071680743745.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:54:10,710]\u001b[0m Trial 128 finished with value: 1664.5592298730244 and parameters: {'eta': 0.2460575893891931, 'max_depth': 3, 'subsample': 0.3855893412559655, 'feature_fraction': 0.9863190039049687, 'boosting': 'gbdt'}. Best is trial 115 with value: 1602.071680743745.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:54:13,732]\u001b[0m Trial 129 finished with value: 1629.2398585973865 and parameters: {'eta': 0.12621829820388744, 'max_depth': 4, 'subsample': 0.34244545316590425, 'feature_fraction': 0.9509808909504863, 'boosting': 'gbdt'}. Best is trial 115 with value: 1602.071680743745.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:54:16,670]\u001b[0m Trial 130 finished with value: 1667.4863602629612 and parameters: {'eta': 0.20579778366142507, 'max_depth': 4, 'subsample': 0.3680384648931427, 'feature_fraction': 0.9543965285212962, 'boosting': 'gbdt'}. Best is trial 115 with value: 1602.071680743745.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:54:20,130]\u001b[0m Trial 131 finished with value: 1633.2008555813288 and parameters: {'eta': 0.12361764760018717, 'max_depth': 4, 'subsample': 0.3295734098616875, 'feature_fraction': 0.9710973360557045, 'boosting': 'gbdt'}. Best is trial 115 with value: 1602.071680743745.\u001b[0m\n", + "\u001b[32m[I 2023-05-23 17:54:23,158]\u001b[0m Trial 132 finished with value: 1612.2962393635255 and parameters: {'eta': 0.1377234159143613, 'max_depth': 4, 'subsample': 0.3408204013726096, 'feature_fraction': 0.973446528162137, 'boosting': 'gbdt'}. Best is trial 115 with value: 1602.071680743745.\u001b[0m\n", + "\n", + "Hyper-Parameter Optimization successfully finished.\n", + " Number of finished trials: 133\n", + " Best trial:\n", + " Value: 1602.071680743745\n", + " Params: \n", + " eta: 0.07596366590755924\n", + " max_depth: 5\n", + " subsample: 0.40986478186150205\n", + " feature_fraction: 0.9985802759008446\n", + " boosting: gbdt\n", + " opt_rounds: 100\n" + ] + } + ], + "source": [ + "# Any LightGBM hyperparameter can be tuned, where the structure of the parameter dictionary needs to be as follows:\n", + "\n", + " # Float/Int sample_type\n", + " # {\"param_name\": [\"sample_type\", low, high, log]}\n", + " # sample_type: str, Type of sampling, e.g., \"float\" or \"int\"\n", + " # low: int, Lower endpoint of the range of suggested values\n", + " # high: int, Upper endpoint of the range of suggested values\n", + " # log: bool, Flag to sample the value from the log domain or not\n", + " # Example: {\"eta\": \"float\", low=1e-5, high=1, log=True]}\n", + "\n", + " # Categorical sample_type\n", + " # {\"param_name\": [\"sample_type\", [\"choice1\", \"choice2\", \"choice3\", \"...\"]]}\n", + " # sample_type: str, Type of sampling, either \"categorical\"\n", + " # choice1, choice2, choice3, ...: str, Possible choices for the parameter\n", + " # Example: {\"boosting\": [\"categorical\", [\"gbdt\", \"dart\"]]}\n", + "\n", + " # For parameters without tunable choice (this is needed if tree_method = \"gpu_hist\" and gpu_id needs to be specified)\n", + " # {\"param_name\": [\"none\", [value]]},\n", + " # param_name: str, Name of the parameter\n", + " # value: int, Value of the parameter\n", + " # Example: {\"gpu_id\": [\"none\", [0]]}\n", + "\n", + "param_dict = {\n", + " \"eta\": [\"float\", {\"low\": 1e-5, \"high\": 1, \"log\": True}],\n", + " \"max_depth\": [\"int\", {\"low\": 1, \"high\": 10, \"log\": False}],\n", + " \"subsample\": [\"float\", {\"low\": 0.2, \"high\": 1.0, \"log\": False}],\n", + " \"feature_fraction\": [\"float\", {\"low\": 0.2, \"high\": 1.0, \"log\": False}],\n", + " \"boosting\": [\"categorical\", [\"gbdt\"]],\n", + "}\n", + "\n", + "np.random.seed(123)\n", + "opt_param = lgblss.hyper_opt(param_dict,\n", + " dtrain,\n", + " num_boost_round=100, # Number of boosting iterations.\n", + " nfold=5, # Number of cv-folds.\n", + " early_stopping_rounds=20, # Number of early-stopping rounds\n", + " max_minutes=5, # Time budget in minutes, i.e., stop study after the given number of minutes.\n", + " n_trials=None, # The number of trials. If this argument is set to None, there is no limitation on the number of trials.\n", + " silence=False, # Controls the verbosity of the trail, i.e., user can silence the outputs of the trail.\n", + " seed=123, # Seed used to generate cv-folds.\n", + " hp_seed=None # Seed for random number generator used in the Bayesian hyperparameter search.\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Model Training" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:48:10.249194200Z", + "start_time": "2023-05-18T06:48:09.343434700Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.random.seed(123)\n", + "\n", + "opt_params = opt_param.copy()\n", + "n_rounds = opt_params[\"opt_rounds\"]\n", + "del opt_params[\"opt_rounds\"]\n", + "\n", + "# Train Model with optimized hyperparameters\n", + "lgblss.train(opt_params,\n", + " dtrain,\n", + " num_boost_round=n_rounds\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Prediction" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:48:10.905030600Z", + "start_time": "2023-05-18T06:48:10.254180800Z" + } + }, + "outputs": [], + "source": [ + "# Set seed for reproducibility\n", + "torch.manual_seed(123)\n", + "\n", + "# Number of samples to draw from predicted distribution\n", + "n_samples = 1000\n", + "quant_sel = [0.05, 0.95] # Quantiles to calculate from predicted distribution\n", + "\n", + "# Sample from predicted distribution\n", + "pred_samples = lgblss.predict(X_test,\n", + " pred_type=\"samples\",\n", + " n_samples=n_samples,\n", + " seed=123)\n", + "\n", + "# Calculate quantiles from predicted distribution\n", + "pred_quantiles = lgblss.predict(X_test,\n", + " pred_type=\"quantiles\",\n", + " n_samples=n_samples,\n", + " quantiles=quant_sel)\n", + "\n", + "# Returns predicted distributional parameters\n", + "pred_params = lgblss.predict(X_test,\n", + " pred_type=\"parameters\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:48:10.961878800Z", + "start_time": "2023-05-18T06:48:10.906028300Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_sample0y_sample1y_sample2y_sample3y_sample4y_sample5y_sample6y_sample7y_sample8y_sample9...y_sample990y_sample991y_sample992y_sample993y_sample994y_sample995y_sample996y_sample997y_sample998y_sample999
029253831423036232129...24393838212227272627
127183823212717363323...25263620273121212017
21721131914202316149...14141421131112191320
371310991110989...713117811108119
46967347637...56106655697
\n", + "

5 rows × 1000 columns

\n", + "
" + ], + "text/plain": [ + " y_sample0 y_sample1 y_sample2 y_sample3 y_sample4 y_sample5 \n", + "0 29 25 38 31 42 30 \\\n", + "1 27 18 38 23 21 27 \n", + "2 17 21 13 19 14 20 \n", + "3 7 13 10 9 9 11 \n", + "4 6 9 6 7 3 4 \n", + "\n", + " y_sample6 y_sample7 y_sample8 y_sample9 ... y_sample990 y_sample991 \n", + "0 36 23 21 29 ... 24 39 \\\n", + "1 17 36 33 23 ... 25 26 \n", + "2 23 16 14 9 ... 14 14 \n", + "3 10 9 8 9 ... 7 13 \n", + "4 7 6 3 7 ... 5 6 \n", + "\n", + " y_sample992 y_sample993 y_sample994 y_sample995 y_sample996 \n", + "0 38 38 21 22 27 \\\n", + "1 36 20 27 31 21 \n", + "2 14 21 13 11 12 \n", + "3 11 7 8 11 10 \n", + "4 10 6 6 5 5 \n", + "\n", + " y_sample997 y_sample998 y_sample999 \n", + "0 27 26 27 \n", + "1 21 20 17 \n", + "2 19 13 20 \n", + "3 8 11 9 \n", + "4 6 9 7 \n", + "\n", + "[5 rows x 1000 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred_samples.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:48:10.994790600Z", + "start_time": "2023-05-18T06:48:10.937943900Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
quant_0.05quant_0.95
02240
11734
21124
3514
4311
\n", + "
" + ], + "text/plain": [ + " quant_0.05 quant_0.95\n", + "0 22 40\n", + "1 17 34\n", + "2 11 24\n", + "3 5 14\n", + "4 3 11" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred_quantiles.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:48:10.994790600Z", + "start_time": "2023-05-18T06:48:10.955897700Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rate
031.458658
125.565571
216.973503
39.111122
46.517088
\n", + "
" + ], + "text/plain": [ + " rate\n", + "0 31.458658\n", + "1 25.565571\n", + "2 16.973503\n", + "3 9.111122\n", + "4 6.517088" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred_params.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "source": [ + "# SHAP Interpretability" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:48:11.803053500Z", + "start_time": "2023-05-18T06:48:10.974844500Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArQAAAI4CAYAAACbTHp5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABo8ElEQVR4nO3deVyVVeLH8Q+yaQi4gPueuxZWrpmpraZmuaCW44ilmWNNU1mW4xLpUFNak+OSmVuaP0vcpjTL1FJDosxcUkpNMly5iiKgoPD8/ngUuHLZuVwf+L5fr/uCe55znnOexzvOt+N5znUzDMNARERERMSiyrl6ACIiIiIiRaFAKyIiIiKWpkArIiIiIpamQCsiIiIilqZAKyIiIiKWpkArIiIiIpamQCsiIiIillYmA61hGCQkJKAteEVERESsr0wG2gsXLuDv78+FCxdcPRQRERERKaIyGWhFREREpPRQoBURERERS1OgFRERERFLU6AVEREREUtToBURERERS1OgFRERERFLU6AVEREREUtToBURERERS1OgFRERERFLU6AVEREREUtToBURERERS1OgFRERERFLU6AVEREREUtToBURERERS1OgFRERERFLU6AVEREREUtToBURERERS1OgFRERERFLU6AVEREREUtToBURERERS1OgFRERERFLU6AVEREREUvzcPUAXOrEWUi84upRiIiIiBSMjzf4+7h6FDeMsh1on5kHfya4ehQiIiIi+dewGswfo0CbRdkOtDE2OBTn6lGIiIiISBFoDa2IiIiIWJoCrYiIiIhYmgKtiIiIiFiaAq2IiIiIWJoCrYiIiIhYmgKtiIiIiFha2d62S0REREQybf0Fpq2FXUcgLgEq+UCbBjAxGDq3yN85lm+Ht1bD/ljwrQB92sG/h0KAn329U+fglSWwbidcuAQtasOr/SH4zgIPWzO0IiIiImL67TiUKwdPPwizRsLYPnDyHNw9ETb8lHf7ORvgsXegii+8EwIj7zMD7r2T4VJqZr2EZLjrn7AyEkY9ANOGmeF34DRYtrXAw3YzDMMocCsXWLlyJR9//DE//vgjcXFxeHp6Urt2bZ566imee+45ypXLfzZPSEjA39+f842fwk9frCAiIiJW0qw2bA6FWlUK3rbbRGhQDRY9m/82ySnQaLQ5U7thUs71Ui9D9Sfg1vrwzRRw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3P/8r81vCbu9UZEvRURERORG5PQZWpvNxrBhw/D19WXIkCHMmjWLUaNGsXDhwkKfc8aMGQA8+eSTxTVM5xnQydxpYPhM2B8LAb7mN4WlpUPoYPu69042f8bMzSwb398Mv90nwXO9zO243l5rLlMYfk9mvX+Fw3fR0OM2c8/asxfMPWx/OATP9oTGNZ1/rSIiIiIu4PRAGxwcjM1mY/ny5QwcOJA9e/awePFievbsWaiHuZKTk1m/fj3+/v6EhIQU/4CLm7u7uX72pcUwY525BKBdY/ObxZrVzrt93QD4dgq8sAheWQpeHtDrDpgeYj+72+sOOHwKFmw2dzgo7wm31oeFz8Cw7s66OhERERGXc+pDYVOnTmXixImEhIRkzMieOnWK1q1bk5aWxt69e6ldOx+hLosZM2bw3HPP8Ze//IUlS5YUalyFfihMRERERG44TltDGxUVxZQpU2jevDlz52b+E3r16tVZtGgR58+fp3///gU+76JFiwB47rnnimuoIiIiImJhTlty0L59e1JSUhwe69Wrl92eZQXx008/FWVYIiIiIlLKlMguByIiIiIizlIi+9DmJD4+3u7bJBzx8PCgXr16JTQiEREREbEalwbacePGMW/evFzrBAQEEBcXV0IjEhERERGrcWmgHTNmDN27576llI+PTwmNRkRERESsyKWBNigoiKCgHL4yVkREREQkH/RQmIiIiIhYmgKtiIiIiFiaS5ccuFyDAHD3gobVXD0SERERESmksh1oZ44EXz/zdx9v145FRERERAqlbAfamlXAz8/VoxARERGRItAaWhERERGxNAVaEREREbE0BVoRERERsTQFWhERERGxNAVaEREREbE0BVoRERERsTQFWhERERGxNAVaEREREbE0BVoRERERsTQFWhERERGxNAVaEREREbE0BVoRERERsTQPVw/ApU6chcQr5u8+3uDv49rxiIiIiEiBle1A+8w8+DMBGlaD+WMUaEVEREQsqGwH2hgbHIpz9ShEREREpAi0hlZERERELE2BVkREREQsTYFWRERERCxNgVZERERELE2BVkREREQsTYFWRERERCytbG/bVVLOJcHLH8Hq7yE5Bdo3genD4Pab89f+QCw8vwC2R4OXB/S6A94JgUD/zDrHz5p9/HDI/N29HDStBWMegr92Azc3Z1yZiIiIiMsp0Dpbejr0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c5nC8CzX+p/PzPN2ambO/C791v7cfTuAT3nnXKOIiIjIDcDpgTY4OBibzcby5csZOHAge/bsYfHixfTs2ZPg4OAinfvYsWNMnToVX19fxo8fX0wjLibu7ub62ZcWw4x15q4E7RrDomehWe2829cNgG+nwAuL4JWl4OUBve4wv9426+zuzzHmzx2/mq/rHXlfgVZERERKNac+FDZ16lQmTpxISEhIxozsqVOnaN26NWlpaezdu5fatfMR7oBFixbxzjvvcPfdd1OzZk1iYmJYuXIlSUlJLFq0iMceeyzf4yrwQ2EiIiIicsNy2gxtVFQUU6ZMoXnz5sydm/lP6dWrV2fRokX06dOH/v37ExkZmctZMjVr1gwvLy+WLl1KYmIivr6+tG3blrCwMNq1a+esyxARERGRG1yJbNt1o9EMrYiIiEjpUSK7HIiIiIiIOEuJ7EObk/j4eLtvk3DEw8ODevXqldCIRERERMRqXBpox40bx7x583KtExAQQFxcXAmNSERERESsxqWBdsyYMXTv3j3XOj4+PiU0GhERERGxIpcG2qCgIIKCcvjqWBERERGRfNBDYSIiIiJiaS6doXW5BgHgoW/REhEREbGysh1oZ44EXz/w8Xb1SERERESkkMp2oK1ZBfz8XD0KERERESkCraEVEREREUtToBURERERS1OgFRERERFLU6AVEREREUtToBURERERS1OgFRERERFLU6AVEREREUtToBURERERS1OgFRERERFLU6AVEREREUtToBURERERS1OgFRERERFL83D1AFzqxFlIvAI+3uDv4+rRiIiIiEghlO0Z2mfmwZOzICnF1SMRERERkUIq2zO0MTZw93L1KERERESkCMr2DK2IiIiIWJ4CrYiIiIhYmgKtiIiIiFiaAq2IiIiIWJoCrYiIiIhYmgKtiIiIiFiaAq2IiIiIWFrZ3ofW2c4lwcsfwervITkF2jeB6cPg9pvz1/5ALDy/ALZHg5cH9LoD3gmBQP/MOtGxsGAzfPUzHD4JFcvD7Y0gdDC0beyMqxIRERG5oWiG1lnS06HXVFi2DZ55CN76K5w+D90mwcHjebePtcHdE+DQSQgbAmP7wLqdcH8opF7OrPfh1zBvI7S9GaaHwAt94Nfj0PEV+Hq30y5PRERE5EZhmUB7+PBhhg8fzh133IGfnx9ubm706NHDdQPqNhFC/pvz8fAdEPErLHoGJg+CMQ/BN6+DezmY/Ene5w9bCUmXYHMo/L0XjB8An74Iu2Ng0ZbMeo91gT8/gA/HwFMPwEuPwvf/hioV4bV89CMiIiJicZYJtLt27WLRokX88ccfNGvWzNXDyVv4DqheCfp1zCwL9IeBd8LaKEi5nGNTAFZGQu+2UC8ws+y+IGhaCz6NyCy742aoWMG+bVVf6NLSXLIgIiIiUspZJtB2796dP/74A5vNxurVq109nLztOmKuZS133S1u38RcT/tbLssOjp0xlye0dbDWtn0T2PV73v2fjIcAv4KNWURERMSCnBZoU1NTadGiBd7e3kRFRdkdCw0Nxc3NjREjRuT7fFWrVqVevXrFPUznOREPNStnL79Wdvxs7m2z1r2+/dnE3Gd4t+2HHb/BoM75H6+IiIiIRTkt0Hp5eREeHo6HhweDBg0iOTkZgIiICMLCwmjZsiVz5sxxVvfF6/IVsCXYvy5fMUPl9eXp6Wabi6ng7WATifJemcdzcu2Yt6eD9p65tz99Dh5/FxpWg5cfzc/ViYiIiFiaU5cctGrVimnTphETE8PQoUO5cOECgwcPxtPTk/DwcDw9HQQ2Fzl58iRHjx7NeJ+QkMC+ffvMN99FQ2CI/SviV1i+PVt52pFTZpsKXsSfiiM+Pj7jnLGxsZw+eizjuF0fV0VERECFq6E35bL5Povjv/+R0R5g//79mX0kXSL1gddIT0iCta9AxQo595HL+8jISNLS0jLe2/Vx9TpyvFfqQ32oD/WhPtSH+lAfxdhHfrgZhmEUuFUB9e3blzVr1tC8eXOio6OZPXs2o0ePLvT5YmNjqVu3Lg8++CAbNmwocPuEhAT8/f053/gp/Ny9zJ0EalXJuUF8Iuw8bF/24iKoURleesS+/K4W5ixskzHQpCasn2B/fP7XMGI27HkXbqnvuL9jZ6DOSPj3UHi5r/2xoe/B+p1w5iP78tTL8PAb8O0v8OUk6Noq5+sRERERKUVK5IsVlixZQuPGjYmOjqZ3795FCrMuUbmiucPA9WU1K2cvv6ZNA9h2wFyCkPXBsO8Pwk3e5m4FOaldFQL94MfD2Y9FHYQ2De3L0tPhrzNg0x74dKzCrIiIiJQpJbLLwbZt27DZbAAcPHiQ1NRc1o+WFgM6walzsCoys8yWACsi4OG29utjD580X1n17wSf/wh/2jLLNu0xd0cIvtO+7rMfwiffweyn7LcJExERESkDnD5Da7PZGDZsGL6+vgwZMoRZs2YxatQoFi5c6OyuXWtAJ+jYFIbPhP2xEOALszdAWrr5tbRZ3TvZ/BkzN7NsfH8z/HafBM/1gsRL8PZac5nC8Hsy6/3nM/O8nZqZM79Lv7U/d98O4FPeOdcoIiIicgNweqANDg7GZrOxfPlyBg4cyJ49e1i8eDE9e/YkODjY2d27jru7uX72pcUwY525K0G7xrDoWWhWO+/2dQPg2ynwwiJ4ZSl4eUCvO8yvt806u/tzjPlzx6/m63pH3legFRERkVLNqQ+FTZ06lYkTJxISEpIxI3vq1Clat25NWloae/fupXbtfIS7q/72t78BkJyczOLFi2nYsGHG19/ef//99O3bN7fmGQr8UJiIiIiI3LCcFmijoqLo0qULjRo1Yvfu3Xh5eWUcW7duHX369KFdu3ZERkbmcpbrBuvmluOxkSNH8sEHH+TrPAq0IiIiIqWH05YctG/fnpSUFIfHevXqZbdnWX6VwA5jIiIiImIxJbLLgYiIiIiIs5TIPrQ5iY+Pt/s2CUc8PDyoV69eCY1IRERERKzGpYF23LhxzJs3L9c6AQEBxMXFldCIRERERMRqXBpox4wZQ/fu3XOt4+PjU0KjERERERErcmmgDQoKIigoh6+OFRERERHJBz0UJiIiIiKW5tIZWpdrEAAe+hYtERERESsr24F25kjw9QMfb1ePREREREQKqWwH2ppVwM/P1aMQERERkSLQGloRERERsTQFWhERERGxNAVaEREREbE0BVoRERERsTQFWhERERGxNAVaEREREbE0BVoRERERsTQFWhERERGxNAVaEREREbE0BVoRERERsTQFWhERERGxNAVaEREREbG0sh1oT5yF80muHoWIiIiIFEHZDrRvrYGkFFePQkRERESKoGwH2pPnXD0CERERESmish1oRURERMTyFGhFRERExNIUaEVERETE0hRoRURERMTSFGhFRERExNIUaEVERETE0hRoRURERMTSPFw9gFLtXBK8/BGs/h6SU6B9E5g+DG6/OX/tD8TC8wtgezR4eUCvO+CdEAj0z6wTHQsLNsNXP8Phk1CxPNzeCEIHQ9vGzrgqERERkRuKZmidJT0dek2FZdvgmYfgrb/C6fPQbRIcPJ53+1gb3D0BDp2EsCEw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OnToQGRkJADffvstd911Fz4+PtSsWZMpU6Y4PNePP/5I3759CQgIwNvbm2bNmvGvf/2LK1eu2NWLiooiJCSEpk2bctNNN+Hr60vnzp1ZvXp1tnOGhITg5ubG+fPnMwJd+fLl6dy5M99//322+itWrKBt27ZUq1YtX9d/8OBBAO69916Hx2vUqJGv8+THTz/9xM8//8ywYcN4/PHH8fDwyHOW9noPPvggAIcOHcqxzhdffIGbmxszZsxweLxTp04EBgZy+fJloGB/Ho5c+zNyxM3NjZCQkGzln3zyCXfddRe+vr7cdNNNdOjQgfDw8Hz1d81DDz2EzWZjy5YtBWonIiVHgVZEStQrr7zCmjVreO6555g8eTK///47DzzwAGvWrKFfv3506dKFadOm0bx5cyZNmsTSpUvt2q9bt47OnTvz22+/8eKLLzJjxgw6derEpEmTss2Wrl69mujoaAYOHMh7773HP//5T86ePUu/fv1YtmyZw/E9+OCDxMbGMmnSJF599VX27dtHr169uHDhQkadU6dO8euvv9K+fft8X/fNN98MwLx58zAMI9/tbDabw1dycnKObebPn0/FihXp378/AQEB9O7dm8WLF5Oenp7vfq8F8ICAgBzrPPDAA9SoUYOPPvrIYfvIyEgef/xxPD09gcL9eRTFhAkTGDx4ML6+vkyZMoU333yTm266ieDgYGbNmpXv83Tq1AmAb775ptjHKCLFxBARKQELFy40AOO2224zUlJSMsrXrl1rAIaHh4fxww8/ZJSnpKQYNWrUMDp27JhRdvHiRaN69epGly5djMuXL9ud/5133jEAY8uWLRlliYmJ2caRlJRkNG3a1GjRooVd+bBhwwzAGD16tF35p59+agDG+++/n1G2efNmAzDee+89h9c6bNgwo379+nZlhw8fNvz8/AzAqFu3rvH4448b7777rvHjjz86PEfXrl0NIM9X1nt27R5VqlTJGDZsWEbZmjVrDMBYv359tn7q169vNG/e3IiLizPi4uKM33//3ViwYIHh7+9veHh4GHv37nU4vmvGjh1rAMYvv/xiVz5hwgQDMHbu3JlRVpA/j8mTJxuAceTIkYyya39GjgB217xz504DMF599dVsdR955BHD19fXSEhIyCi79vnM2l9WHh4eRu/evR0eExHX0wytiJSo0aNH4+XllfG+S5cuAHTo0IG2bdtmlHt5edG+ffuMmUKAjRs3curUKYYPH865c+fsZix79uwJwFdffZVR38fHJ+P35ORkzpw5Q3JyMvfccw8HDhwgISEh2/ief/55u/f33HMPgN044uLiAKhSpUq+r7tRo0bs3r2bMWPGALBs2TKef/552rZty6233srOnTuztSlfvjwbN250+Bo6dKjDflatWsW5c+cYNmxYRlnPnj0JDAzMcdlBdHQ0gYGBBAYG0qhRI5544gkCAgJYu3YtrVu3zvW6rvWTdZbWMAyWLl1K69atuf322zPKC/PnUVgff/wxbm5uDBs2LNvsdp8+fbhw4QI7duzI9/mqVKnC6dOni218IlK89FCYiJSo6x9Mqly5MgANGzbMVrdy5cqcOXMm4/2BAwcAeOKJJ3I8/6lTpzJ+P336NBMmTGDt2rUOw8i5c+fw8/PLdXxVq1YFsBvHtXWcRgGWDoC5RdbMmTOZOXMmJ06cYPv27SxZsoTPPvuM3r1788svv9iFZHd3d+677z6H59q+fbvD8vnz5xMYGEidOnXs1r8+8MADrFixApvNlm0ZQYMGDTL20vXy8qJWrVo0btw4X9d0LbR+/PHHhIWFUa5cObZu3UpMTAxvvfWWXd3C/HkU1oEDBzAMg+bNm+dYJ+tnJS+GYeS4fldEXE+BVkRKlLu7e4HKs7oWIN9++23atGnjsE6tWrUy6j7wwAMcOHCA5557jrZt2+Lv74+7uzsLFy5k2bJlDteU5jSOrOE1MDAQgLNnz+Y55pzUrFmT4OBggoODGTJkCMuWLWP9+vV2uw0U1JEjR9iyZQuGYdC0aVOHdZYuXco//vEPuzIfH58cg3N+/PWvf+Uf//gHmzdv5r777uOjjz7C3d3d7loK++eRVU6B8vqHAa/15+bmxhdffJHjn2mrVq3yfY3x8fEZf+4icuNRoBURy2jSpAmQvwC2Z88edu/ezaRJk7J909OHH35YpHFcC0JZlyEURceOHVm2bBnHjh0r0nkWLlyIYRjMmzePSpUqZTs+YcIEFixYkC3QFtXjjz/OSy+9xEcffUTnzp0JDw/n/vvvp2bNmhl1iuPP49rs9dmzZ+1msn///fdsdZs0acKGDRuoV68eLVq0KMxlZYiJieHKlSt5Lr8QEdfRGloRsYwHH3yQatWq8eabbzqcHb148WLGbgTXZuWuXxawb9++fG8TlZPAwEBatWqVsd1YfnzzzTdcvHgxW3l6ejqfffYZAC1btiz0mNLT01m0aBG33HILI0aMYMCAAdlejz32GHv37uWHH34odD+OBAYG8tBDD7Fq1So+/vhjEhIS7NbwQvH8eVybdf7666/tyqdPn56t7rU1xuPHjyctLS3b8YIsN7j259y1a9d8txGRkqUZWhGxDB8fHz766CMeffRRmjVrxhNPPEHjxo05d+4c0dHRrFq1itWrV9OtWzdatGhBq1ateOutt0hOTqZZs2b89ttvzJ07l1tuucXhQ1gFERwczJQpUzhx4oTdTGROpk2bxnfffcfDDz/M7bffjr+/PydPnmTlypXs3LmT7t2706tXr0KP56uvvuLPP//kySefzLFO//79ee2115g/fz7t2rUrdF+ODBs2jP/973+8+OKL+Pv78+ijj9odL44/j8cee4zx48fz1FNPER0dTZUqVdiwYYPDbzNr164dr732Gq+99hpt2rQhODiYWrVqceLECXbu3Mn69etJTU3N17WtX7+egIAAunfvnq/6IlLyFGhFxFIefPBBfvjhB958802WLl1KXFwclStX5uabb+aFF17g1ltvBcwZwXXr1jF27FgWL15MUlISrVu3ZvHixezevbvIgXbkyJFMnTqVZcuW8eKLL+ZZf8KECaxYsYKtW7fy5ZdfcvbsWXx8fGjRogXTp09nzJgxlCtX+H80mz9/PgD9+vXLsU7r1q1p2rQpy5cv591336VChQqF7u96vXv3pkqVKpw9e5YRI0ZQvnx5u+PF8efh5+fH+vXreeGFFwgLC6NixYr069ePpUuXZjxcmNXkyZNp27YtM2bM4D//+Q9JSUlUq1aN1q1b5/hlENdLSkpi1apVjB49Wt8SJnIDczMK+piuiIgA8PTTT/PVV1/x66+/Znx5AJjfaPXNN98QExPjusFJgSxatIjhw4dz5MgRGjRokFF+7QsgDh48mK+ZeBFxDa2hFREppNdff50zZ86wcOFCVw9FnODixYu8+eabvPTSSwqzIjc4LTkQESmkatWqcf78eVcPQ5ykQoUKnDhxwtXDEJF80AytiIiIiFia1tCKiIiIiKVphlZERERELE2BVkREREQsTYFWRERERCxNgVZERERELE2BVkREREQsTYFWRERERCxNgVZERERELE2BVkREREQs7f8BTomuGPIXaQsAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Feature Importance of rate parameter\n", + "lgblss.plot(X_test,\n", + " parameter=\"rate\",\n", + " plot_type=\"Feature_Importance\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "source": [ + "# Plot Predicted vs. True" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "ExecuteTime": { + "end_time": "2023-05-18T06:48:12.022498800Z", + "start_time": "2023-05-18T06:48:11.803053500Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAGzCAYAAACPa3XZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABFn0lEQVR4nO3deXhTdb4/8HdSmnRP9yZAKQVUKBUYqpTKMoqFAg6i4DOA4kUv16UXGZXRUebOWJlxpi735zKKdRmvzBURZa7LraP1IggMTgFlGa1VHuyURWlaaGla2iYtyff3RyexabMvJ8nJ+/U8fWZ6cpJ8vjnVfDzf8z5fhRBCgIiIiEgiylAXQERERNGFzQcRERFJis0HERERSYrNBxEREUmKzQcRERFJis0HERERSYrNBxEREUmKzQcRERFJis0HERERSYrNB5HMjB49Grfccovt9127dkGhUGDXrl0hq2mwwTUSUXRh80EUQJs2bYJCobD9xMXF4eKLL8Zdd92F5ubmUJfnlQ8++AAPP/xwqMuQzMMPP2x37Jz9XHnllaEulSjiDQt1AURy9Jvf/Ab5+fkwGo3Yu3cvqqqq8MEHH6Curg4JCQmS1jJ79mz09PRApVJ59bwPPvgAGzdujJoGZMmSJRg3bpzt9/Pnz6O8vBzXX389lixZYtuek5MTivKIZIXNB1EQLFiwAJdddhkA4N/+7d+QkZGBJ598Eu+99x5WrFjh8DldXV1ITEwMeC1KpRJxcXEBf125mTRpEiZNmmT7/ezZsygvL8ekSZOwcuVKp88zGo1QqVRQKnkimchT/KeFSAJz5swBADQ2NgIAbrnlFiQlJaGhoQELFy5EcnIybrrpJgCAxWLB008/jYkTJyIuLg45OTm44447cO7cObvXFELgkUcewciRI5GQkICrrroKX3311ZD3dnbNx/79+7Fw4UKkpaUhMTERkyZNwjPPPGOrb+PGjQBgN+VgFegaB+vr60N6ejpuvfXWIY91dHQgLi4O9913n23bs88+i4kTJyIhIQFpaWm47LLLsGXLFrfv4y3rZ7l161b86le/wogRI5CQkICOjg7btM1g1qm448eP223/8MMPMWvWLCQmJiI5ORnXXHONR58NkRzwzAeRBBoaGgAAGRkZtm0XLlxAWVkZZs6cif/8z/+0Tcfccccd2LRpE2699Vb87Gc/Q2NjI5577jkcPnwYn376KWJjYwEADz30EB555BEsXLgQCxcuxKFDhzBv3jz09va6rWf79u34yU9+Ap1Oh7vvvhtarRZff/013n//fdx999244447cPr0aWzfvh2vvfbakOcHu8bY2Fhcf/31ePvtt/Hiiy/aTRm9++67MJlMWL58OQDg5Zdfxs9+9jPccMMNuPvuu2E0GvHFF19g//79uPHGG91+Fr747W9/C5VKhfvuuw8mk8nrKa3XXnsNq1atQllZGR577DF0d3ejqqoKM2fOxOHDhzF69Oig1E0UNgQRBcyrr74qAIiPP/5YnDlzRpw6dUps3bpVZGRkiPj4ePHdd98JIYRYtWqVACAefPBBu+f/9a9/FQDE66+/bre9pqbGbntLS4tQqVTimmuuERaLxbbfL3/5SwFArFq1yrbtk08+EQDEJ598IoQQ4sKFCyI/P1/k5eWJc+fO2b3PwNdas2aNcPSviGDU6MhHH30kAIjq6mq77QsXLhRjxoyx/b548WIxceJEl6/lizNnzggAoqKiwrbN+lmOGTNGdHd32+1fUVHh8POy/k00NjYKIYTo7OwUqamp4rbbbrPbT6/XC41GM2Q7kRxx2oUoCEpLS5GVlYXc3FwsX74cSUlJeOeddzBixAi7/crLy+1+37ZtGzQaDebOnYuzZ8/afoqKipCUlIRPPvkEAPDxxx+jt7cXa9eutTvVf88997it7fDhw2hsbMQ999yD1NRUu8ccTRsMJkWNQP9UVWZmJt58803btnPnzmH79u1YtmyZbVtqaiq+++47fPbZZx69biCsWrUK8fHxPj13+/btaG9vx4oVK+w+v5iYGBQXF9s+PyI547QLURBs3LgRF198MYYNG4acnBxccsklQy5IHDZsGEaOHGm37dixYzAYDMjOznb4ui0tLQCAEydOAAAuuugiu8ezsrKQlpbmsjbrFFBhYaHnA5K4RqD/81m6dCm2bNkCk8kEtVqNt99+G319fXbNxwMPPICPP/4Y06ZNw7hx4zBv3jzceOONmDFjhk/j80R+fr7Pzz127BiAH64DGiwlJcXn1yaKFGw+iIJg2rRptrSLM2q1ekhDYrFYkJ2djddff93hc7KysgJWo6+krHH58uV48cUX8eGHH+K6667DW2+9hfHjx2Py5Mm2fSZMmICjR4/i/fffR01NDf7nf/4Hzz//PB56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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(pred_params[\"rate\"], y_test)\n", + "plt.title(\"Predicted vs. True\")\n", + "plt.show()" + ] + } + ], + "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.9.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}