From: Jérôme Benoit Date: Wed, 19 Feb 2025 21:51:58 +0000 (+0100) Subject: perf(qav3): fine tune the labeling window size computation X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=2af0235aeaff167255ddfceab49713cde0fea0e2;p=freqai-strategies.git perf(qav3): fine tune the labeling window size computation Signed-off-by: Jérôme Benoit --- diff --git a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py index 12dd97d..dc09d62 100644 --- a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py @@ -12,7 +12,6 @@ import scipy as spy import optuna import sklearn import warnings -import re import numpy as np N_TRIALS = 36 @@ -573,15 +572,22 @@ def period_objective( ) y_pred = model.predict(X_test) - min_label_period_candles = int(fit_live_predictions_candles / 10) - max_label_period_candles = fit_live_predictions_candles + min_label_period_candles = int(fit_live_predictions_candles / 6) + max_label_period_candles = int(fit_live_predictions_candles / 2) label_period_candles = trial.suggest_int( "label_period_candles", 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 = [ + y_test.iloc[i : i + label_period_candles] + for i in range(0, len(y_test), label_period_candles) + ] + y_pred = pd.Series(y_pred) + y_pred = [ + y_pred.iloc[i : i + label_period_candles] + for i in range(0, len(y_pred), 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 3e4dc15..48d2e6b 100644 --- a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py @@ -12,7 +12,6 @@ import scipy as spy import optuna import sklearn import warnings -import re import numpy as np N_TRIALS = 36 @@ -577,15 +576,22 @@ def period_objective( ) y_pred = model.predict(X_test) - min_label_period_candles = int(fit_live_predictions_candles / 10) - max_label_period_candles = fit_live_predictions_candles + min_label_period_candles = int(fit_live_predictions_candles / 6) + max_label_period_candles = int(fit_live_predictions_candles / 2) label_period_candles = trial.suggest_int( "label_period_candles", 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 = [ + y_test.iloc[i : i + label_period_candles] + for i in range(0, len(y_test), label_period_candles) + ] + y_pred = pd.Series(y_pred) + y_pred = [ + y_pred.iloc[i : i + label_period_candles] + for i in range(0, len(y_pred), label_period_candles) + ] error = sklearn.metrics.root_mean_squared_error(y_test, y_pred)