From: Jérôme Benoit Date: Tue, 25 Feb 2025 23:34:23 +0000 (+0100) Subject: fix(qav3): ensure real soft min/max are normalized X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=3efdf05ffa9549423da5d7326e7f1878cde2e967;p=freqai-strategies.git fix(qav3): ensure real soft min/max are normalized Signed-off-by: Jérôme Benoit --- diff --git a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py index a2aa347..ced1b7f 100644 --- a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py @@ -638,9 +638,11 @@ def hp_objective( return error -def real_soft_max(series: pd.Series) -> float: - return spy.special.logsumexp(series) +def real_soft_max(series: pd.Series, beta=1.0) -> float: + maximum = series.max() + return maximum + spy.special.logsumexp(beta * (series - maximum)) / beta -def real_soft_min(series: pd.Series) -> float: - return -spy.special.logsumexp(-series) +def real_soft_min(series: pd.Series, beta=1.0) -> float: + minimum = series.min() + return minimum - spy.special.logsumexp(-beta * (series - minimum)) / beta diff --git a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py index 9a4df00..575ef13 100644 --- a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py @@ -644,9 +644,11 @@ def hp_objective( return error -def real_soft_max(series: pd.Series) -> float: - return spy.special.logsumexp(series) +def real_soft_max(series: pd.Series, beta=1.0) -> float: + maximum = series.max() + return maximum + spy.special.logsumexp(beta * (series - maximum)) / beta -def real_soft_min(series: pd.Series) -> float: - return -spy.special.logsumexp(-series) +def real_soft_min(series: pd.Series, beta=1.0) -> float: + minimum = series.min() + return minimum - spy.special.logsumexp(-beta * (series - minimum)) / beta