]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
refactor(qav3): cleanup predictions smoothing code
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 7 Apr 2025 09:57:22 +0000 (11:57 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 7 Apr 2025 09:57:22 +0000 (11:57 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py

index 6d181341333b5b43c90114132594c09a7710d204..d353beef8637d6dc3d6e7de28b82ebc9738035d7 100644 (file)
@@ -695,8 +695,15 @@ def hp_objective(
 
 
 def smoothed_max(series: pd.Series, temperature=1.0) -> float:
-    return sp.special.logsumexp(temperature * series.to_numpy()) / temperature
+    data_array = series.to_numpy()
+    if data_array.size == 0:
+        return np.nan
+    if temperature < 0:
+        raise ValueError("temperature must be non-negative.")
+    if temperature == 0:
+        return data_array.max()
+    return sp.special.logsumexp(temperature * data_array) / temperature
 
 
 def smoothed_min(series: pd.Series, temperature=1.0) -> float:
-    return -sp.special.logsumexp(-temperature * series.to_numpy()) / temperature
+    return -smoothed_max(-series, temperature=temperature)