From 2bfe9c90f456f7c8c9d4a8cef44aa049fe7641d4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Thu, 6 Feb 2025 13:21:40 +0100 Subject: [PATCH] refactor(qav3): add optuna config section in freqai config MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- quickadapter/user_data/config-template.json | 12 +++++++----- .../freqaimodels/LightGBMRegressorQuickAdapterV35.py | 11 ++++++----- .../freqaimodels/XGBoostRegressorQuickAdapterV35.py | 11 ++++++----- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/quickadapter/user_data/config-template.json b/quickadapter/user_data/config-template.json index b28f087..2b6fe86 100644 --- a/quickadapter/user_data/config-template.json +++ b/quickadapter/user_data/config-template.json @@ -115,11 +115,13 @@ "track_performance": false, "data_kitchen_thread_count": 6, // set to number of CPU threads / 4 "outlier_threshold": 0.999, - "optuna_hyperopt": true, - "optuna_hyperopt_trials": 36, - "optuna_hyperopt_timeout": 3600, - "optuna_hyperopt_jobs": 6, - "optuna_hyperopt_candles_step": 10, + "optuna_hyperopt": { + "enabled": true, + "n_trials": 36, + "n_jobs": 6, + "timeout": 3600, + "candles_step": 10 + }, "extra_returns_per_train": { "DI_value_param1": 0, "DI_value_param2": 0, diff --git a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py index 1ad7b5d..f673601 100644 --- a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py @@ -38,8 +38,9 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel): def __init__(self, **kwargs): super().__init__(**kwargs) + self.__optuna_config = self.freqai_info.get("optuna_hyperopt", {}) self.__optuna_hyperopt: bool = ( - self.freqai_info.get("optuna_hyperopt", False) + self.__optuna_config.get("enabled", False) and self.data_split_parameters.get("test_size", TEST_SIZE) > 0 ) self.__optuna_hp = {} @@ -77,12 +78,12 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel): y_test, test_weights, self.freqai_info.get("fit_live_predictions_candles", 100), - self.freqai_info.get("optuna_hyperopt_candles_step", 100), + self.__optuna_config.get("candles_step", 100), self.model_training_parameters, ), - n_trials=self.freqai_info.get("optuna_hyperopt_trials", N_TRIALS), - n_jobs=self.freqai_info.get("optuna_hyperopt_jobs", 1), - timeout=self.freqai_info.get("optuna_hyperopt_timeout", 3600), + n_trials=self.__optuna_config.get("n_trials", N_TRIALS), + n_jobs=self.__optuna_config.get("n_jobs", 1), + timeout=self.__optuna_config.get("timeout", 3600), ) self.__optuna_hp = study.best_params diff --git a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py index e57b8d3..15abca3 100644 --- a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py @@ -38,8 +38,9 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel): def __init__(self, **kwargs): super().__init__(**kwargs) + self.__optuna_config = self.freqai_info.get("optuna_hyperopt", {}) self.__optuna_hyperopt: bool = ( - self.freqai_info.get("optuna_hyperopt", False) + self.__optuna_config.get("enabled", False) and self.data_split_parameters.get("test_size", TEST_SIZE) > 0 ) self.__optuna_hp = {} @@ -77,12 +78,12 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel): y_test, test_weights, self.freqai_info.get("fit_live_predictions_candles", 100), - self.freqai_info.get("optuna_hyperopt_candles_step", 100), + self.__optuna_config.get("candles_step", 100), self.model_training_parameters, ), - n_trials=self.freqai_info.get("optuna_hyperopt_trials", N_TRIALS), - n_jobs=self.freqai_info.get("optuna_hyperopt_jobs", 1), - timeout=self.freqai_info.get("optuna_hyperopt_timeout", 3600), + n_trials=self.__optuna_config.get("n_trials", N_TRIALS), + n_jobs=self.__optuna_config.get("n_jobs", 1), + timeout=self.__optuna_config.get("timeout", 3600), ) self.__optuna_hp = study.best_params -- 2.43.0