From c14c79ae2bfc58660f469b4277cd7ba8813bb9ab Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Fri, 28 Feb 2025 18:34:00 +0100 Subject: [PATCH] perf(qav3): ensure hyperopt choose the labelling period optimally MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- .../freqaimodels/LightGBMRegressorQuickAdapterV35.py | 8 ++++++-- .../freqaimodels/XGBoostRegressorQuickAdapterV35.py | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py index 227b9af..59ede95 100644 --- a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py @@ -608,8 +608,12 @@ def period_objective( min_label_period_candles, max_label_period_candles, ) - y_test = y_test.tail(label_period_candles) - y_pred = y_pred[-label_period_candles:] + y_test_length = len(y_test) + y_pred_length = len(y_pred) + y_test = y_test.tail(y_test_length - (y_test_length % label_period_candles)) + y_pred = y_pred[-(y_pred_length - (y_pred_length % label_period_candles)) :] + y_test.reshape(len(y_test) // label_period_candles, label_period_candles) + y_pred.reshape(len(y_pred) // label_period_candles, label_period_candles) error = sklearn.metrics.root_mean_squared_error(y_test, y_pred) diff --git a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py index f0860ca..3b02ebf 100644 --- a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py @@ -612,8 +612,12 @@ def period_objective( min_label_period_candles, max_label_period_candles, ) - y_test = y_test.tail(label_period_candles) - y_pred = y_pred[-label_period_candles:] + y_test_length = len(y_test) + y_pred_length = len(y_pred) + y_test = y_test.tail(y_test_length - (y_test_length % label_period_candles)) + y_pred = y_pred[-(y_pred_length - (y_pred_length % label_period_candles)) :] + y_test.reshape(len(y_test) // label_period_candles, label_period_candles) + y_pred.reshape(len(y_pred) // label_period_candles, label_period_candles) error = sklearn.metrics.root_mean_squared_error(y_test, y_pred) -- 2.43.0