]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
feat(qav3): expose more optuna tunables
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 26 Jan 2025 17:35:41 +0000 (18:35 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 26 Jan 2025 17:35:41 +0000 (18:35 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
quickadapter/user_data/config-template.json
quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py
quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py

index 692a35336667471994eeb67253f5ba4711ee8ca5..de65213061bb4f21b6f23a9b385fbc5847754c86 100644 (file)
         "data_kitchen_thread_count": 6, // set to number of CPU threads / 4
         "weibull_outlier_threshold": 0.999,
         "optuna_hyperopt": true,
+        "optuna_hyperopt_trials": 36,
+        "optuna_hyperopt_timeout": 3600,
+        "optuna_hyperopt_jobs": 1,
         "extra_returns_per_train": {
             "DI_value_param1": 0,
             "DI_value_param2": 0,
index dec8de6c659aab550e989396932a3ad8de22f7c1..91cf2690eea3f0c2aa0923735dbdeb61df2c33d7 100644 (file)
@@ -80,8 +80,9 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel):
                     y_test,
                     self.model_training_parameters,
                 ),
-                n_trials=N_TRIALS,
-                n_jobs=1,
+                n_trials=self.freqai_info.get("optuna_hyperopt_trials", N_TRIALS),
+                n_jobs=self.freqai_info.get("optuna_hyperopt_jobs", 1),
+                timeout=self.freqai_info.get("optuna_hyperopt_timeout", 7200),
             )
 
             hp = study.best_params
index f9cecc33b3a1f4ce9c8bec69bda48ed899cc6e27..082c0bd298eb2b94557f1c9be0513c0f8142871e 100644 (file)
@@ -80,8 +80,9 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel):
                     y_test,
                     self.model_training_parameters,
                 ),
-                n_trials=N_TRIALS,
-                n_jobs=1,
+                n_trials=self.freqai_info.get("optuna_hyperopt_trials", N_TRIALS),
+                n_jobs=self.freqai_info.get("optuna_hyperopt_jobs", 1),
+                timeout=self.freqai_info.get("optuna_hyperopt_timeout", 7200),
             )
 
             hp = study.best_params
@@ -103,6 +104,7 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel):
                 **{
                     "n_estimators": hp.get("n_estimators"),
                     "learning_rate": hp.get("learning_rate"),
+                    "max_depth": hp.get("max_depth"),
                     "gamma": hp.get("gamma"),
                     "reg_alpha": hp.get("reg_alpha"),
                     "reg_lambda": hp.get("reg_lambda"),
@@ -220,6 +222,7 @@ def objective(trial, X, y, weights, X_test, y_test, params):
         "eval_metric": "rmse",
         "n_estimators": trial.suggest_int("n_estimators", 100, 1000),
         "learning_rate": trial.suggest_loguniform("learning_rate", 1e-8, 1.0),
+        "max_depth": trial.suggest_int("max_depth", 1, 10),
         "gamma": trial.suggest_loguniform("gamma", 1e-8, 1.0),
         "reg_alpha": trial.suggest_loguniform("reg_alpha", 1e-8, 10.0),
         "reg_lambda": trial.suggest_loguniform("reg_lambda", 1e-8, 10.0),