]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
perf(qav3): fine tune optuna search space
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 7 Feb 2025 10:30:32 +0000 (11:30 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 7 Feb 2025 10:30:32 +0000 (11:30 +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 260dc4705967971069f27fc9da52c60826fb64c0..7f4136b7e6b35910e3237efae075cfd9f6ad5f3e 100644 (file)
@@ -78,6 +78,7 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel):
                     X_test,
                     y_test,
                     test_weights,
+                    self.data_split_parameters.get("test_size", TEST_SIZE),
                     self.freqai_info.get("fit_live_predictions_candles", 100),
                     self.__optuna_config.get("candles_step", 100),
                     self.model_training_parameters,
@@ -235,11 +236,12 @@ def objective(
     X_test,
     y_test,
     test_weights,
+    test_size,
     fit_live_predictions_candles,
     candles_step,
     params,
 ):
-    min_train_window: int = 10
+    min_train_window: int = 600
     max_train_window: int = (
         len(X) if len(X) > min_train_window else (min_train_window + len(X))
     )
@@ -250,7 +252,7 @@ def objective(
     y = y.tail(train_window)
     train_weights = train_weights[-train_window:]
 
-    min_test_window: int = 10
+    min_test_window: int = int(min_train_window * test_size)
     max_test_window: int = (
         len(X_test)
         if len(X_test) > min_test_window
@@ -276,7 +278,7 @@ def objective(
     )
     y_pred = model.predict(X_test)
 
-    min_label_period_candles = 1
+    min_label_period_candles = int(fit_live_predictions_candles / 10)
     max_label_period_candles = int(fit_live_predictions_candles / 2)
     if max_label_period_candles < min_label_period_candles:
         max_label_period_candles = min_label_period_candles
index d87654eda53814d5ff2dc8e4ed610ba9c8091e37..5f37651e31ce36184e09df72496cb5b474a16ca0 100644 (file)
@@ -78,6 +78,7 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel):
                     X_test,
                     y_test,
                     test_weights,
+                    self.data_split_parameters.get("test_size", TEST_SIZE),
                     self.freqai_info.get("fit_live_predictions_candles", 100),
                     self.__optuna_config.get("candles_step", 100),
                     self.model_training_parameters,
@@ -235,11 +236,12 @@ def objective(
     X_test,
     y_test,
     test_weights,
+    test_size,
     fit_live_predictions_candles,
     candles_step,
     params,
 ):
-    min_train_window: int = 10
+    min_train_window: int = 600
     max_train_window: int = (
         len(X) if len(X) > min_train_window else (min_train_window + len(X))
     )
@@ -250,7 +252,7 @@ def objective(
     y = y.tail(train_window)
     train_weights = train_weights[-train_window:]
 
-    min_test_window: int = 10
+    min_test_window: int = int(min_train_window * test_size)
     max_test_window: int = (
         len(X_test)
         if len(X_test) > min_test_window
@@ -281,7 +283,7 @@ def objective(
     )
     y_pred = model.predict(X_test)
 
-    min_label_period_candles = 1
+    min_label_period_candles = int(fit_live_predictions_candles / 10)
     max_label_period_candles = int(fit_live_predictions_candles / 2)
     if max_label_period_candles < min_label_period_candles:
         max_label_period_candles = min_label_period_candles