From 8803d9c54579490d1f93340559211dd1b5124ce7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Sun, 31 Aug 2025 00:14:52 +0200 Subject: [PATCH] perf(qav3): skip training sets sizing when necessary MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- .../freqaimodels/QuickAdapterRegressorV3.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py index b6da415..89e9448 100644 --- a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py +++ b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py @@ -340,9 +340,13 @@ class QuickAdapterRegressorV3(BaseRegressionModel): direction=optuna.study.StudyDirection.MINIMIZE, ) + optuna_hp_value = self.get_optuna_value(dk.pair, "hp") optuna_train_params = self.get_optuna_params(dk.pair, "train") - if optuna_train_params and self.optuna_params_valid( - dk.pair, "train", train_study + optuna_train_value = self.get_optuna_value(dk.pair, "train") + if ( + optuna_train_params + and self.optuna_params_valid(dk.pair, "train", train_study) + and optuna_train_value < optuna_hp_value ): train_period_candles = optuna_train_params.get("train_period_candles") if isinstance(train_period_candles, int) and train_period_candles > 0: @@ -355,6 +359,10 @@ class QuickAdapterRegressorV3(BaseRegressionModel): X_test = X_test.iloc[-test_period_candles:] y_test = y_test.iloc[-test_period_candles:] test_weights = test_weights[-test_period_candles:] + elif optuna_train_value >= optuna_hp_value: + logger.warning( + f"{dk.pair}: Optuna train RMSE {format_number(optuna_train_value)} is not better than HPO RMSE {format_number(optuna_hp_value)}, skipping training sets sizing optimization" + ) eval_set, eval_weights = QuickAdapterRegressorV3.eval_set_and_weights( X_test, -- 2.43.0