]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
perf(qav3): fine tune the labeling window size computation
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Wed, 19 Feb 2025 21:51:58 +0000 (22:51 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Wed, 19 Feb 2025 21:51:58 +0000 (22:51 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py
quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py

index 12dd97d31bf8cade0f8d00ca841acb2d8a56a176..dc09d623d0ae981978c1c38de07ec2fc5190456c 100644 (file)
@@ -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)
 
index 3e4dc155672f626c2dc2d0cdc71e4941f231a126..48d2e6bf068fbd9b8b46ca236795944643cc9090 100644 (file)
@@ -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)