]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
perf(qav3): use optimized mean computation
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 14 Mar 2025 18:21:20 +0000 (19:21 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 14 Mar 2025 18:21:20 +0000 (19:21 +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 ee1fcf454f798c2eae297bde257cca84ba28a898..f5017a172e6aa2e245305f5efff941916d7334c2 100644 (file)
@@ -1,5 +1,6 @@
 import logging
 import json
+from statistics import fmean
 from typing import Any
 from pathlib import Path
 
@@ -606,12 +607,12 @@ def period_objective(
     ]
     y_pred = [y_pred[i : i + label_window] for i in range(0, len(y_pred), label_window)]
 
-    error = 0.0
-    for y_t, y_p, t_w in zip(y_test, y_pred, test_weights):
-        error += sklearn.metrics.root_mean_squared_error(y_t, y_p, sample_weight=t_w)
-    error /= len(y_test)
+    errors = [
+        sklearn.metrics.root_mean_squared_error(y_t, y_p, sample_weight=t_w)
+        for y_t, y_p, t_w in zip(y_test, y_pred, test_weights)
+    ]
 
-    return error
+    return fmean(errors)
 
 
 def hp_objective(
index 4a3f62294fbb2c5e93ba2d4d68826856bfd651fe..9f54617aa214c9031437afb8f566a9fa6fc0b37c 100644 (file)
@@ -1,5 +1,6 @@
 import logging
 import json
+from statistics import fmean
 from typing import Any
 from pathlib import Path
 
@@ -614,12 +615,12 @@ def period_objective(
     ]
     y_pred = [y_pred[i : i + label_window] for i in range(0, len(y_pred), label_window)]
 
-    error = 0.0
-    for y_t, y_p, t_w in zip(y_test, y_pred, test_weights):
-        error += sklearn.metrics.root_mean_squared_error(y_t, y_p, sample_weight=t_w)
-    error /= len(y_test)
+    errors = [
+        sklearn.metrics.root_mean_squared_error(y_t, y_p, sample_weight=t_w)
+        for y_t, y_p, t_w in zip(y_test, y_pred, test_weights)
+    ]
 
-    return error
+    return fmean(errors)
 
 
 def hp_objective(