]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
fix(qav3): properly handle temperature=0 in smoothed_min()
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 7 Apr 2025 10:48:02 +0000 (12:48 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 7 Apr 2025 10:48:02 +0000 (12:48 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py

index d353beef8637d6dc3d6e7de28b82ebc9738035d7..a1a32d103defc3cf0ed9464d58f487bce7c3c909 100644 (file)
@@ -706,4 +706,11 @@ def smoothed_max(series: pd.Series, temperature=1.0) -> float:
 
 
 def smoothed_min(series: pd.Series, temperature=1.0) -> float:
-    return -smoothed_max(-series, temperature=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.min()
+    return -sp.special.logsumexp(-temperature * data_array) / temperature