]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
fix(qav3): filter prediction dataframe
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 10 Feb 2025 21:56:56 +0000 (22:56 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 10 Feb 2025 21:56:56 +0000 (22:56 +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 a02cb20002e9f1d0d68ada92c1980f100c4fd04c..fa7b43677a74ba414c75a4ea1f6ff71065d97e46 100644 (file)
@@ -242,11 +242,16 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel):
 def min_max_pred(
     pred_df: pd.DataFrame, fit_live_predictions_candles: int, label_period_candles: int
 ):
+    local_pred_df = pd.DataFrame()
+    for label in pred_df:
+        if pred_df[label].dtype == object:
+            continue
+        local_pred_df[label] = pred_df[label]
     beta = 10.0
-    min_pred = pred_df.tail(label_period_candles).apply(
+    min_pred = local_pred_df.tail(label_period_candles).apply(
         lambda col: smooth_min(col, beta=beta)
     )
-    max_pred = pred_df.tail(label_period_candles).apply(
+    max_pred = local_pred_df.tail(label_period_candles).apply(
         lambda col: smooth_max(col, beta=beta)
     )
 
@@ -256,10 +261,13 @@ def min_max_pred(
 def __min_max_pred(
     pred_df: pd.DataFrame, fit_live_predictions_candles: int, label_period_candles: int
 ):
-    pred_df_sorted = (
-        pred_df.select_dtypes(exclude=["object"])
-        .copy()
-        .apply(lambda col: col.sort_values(ascending=False, ignore_index=True))
+    pred_df_sorted = pd.DataFrame()
+    for label in pred_df:
+        if pred_df[label].dtype == object:
+            continue
+        pred_df_sorted[label] = pred_df[label]
+    pred_df_sorted = pred_df_sorted.apply(
+        lambda col: col.sort_values(ascending=False, ignore_index=True)
     )
 
     frequency = fit_live_predictions_candles / label_period_candles
index 22c7776922cd81f8a544ade49055054e135bf472..bfe606284f9fd836805f1e018fa7b0f0b1e52dbc 100644 (file)
@@ -242,11 +242,16 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel):
 def min_max_pred(
     pred_df: pd.DataFrame, fit_live_predictions_candles: int, label_period_candles: int
 ):
+    local_pred_df = pd.DataFrame()
+    for label in pred_df:
+        if pred_df[label].dtype == object:
+            continue
+        local_pred_df[label] = pred_df[label]
     beta = 10.0
-    min_pred = pred_df.tail(label_period_candles).apply(
+    min_pred = local_pred_df.tail(label_period_candles).apply(
         lambda col: smooth_min(col, beta=beta)
     )
-    max_pred = pred_df.tail(label_period_candles).apply(
+    max_pred = local_pred_df.tail(label_period_candles).apply(
         lambda col: smooth_max(col, beta=beta)
     )
 
@@ -256,10 +261,13 @@ def min_max_pred(
 def __min_max_pred(
     pred_df: pd.DataFrame, fit_live_predictions_candles: int, label_period_candles: int
 ):
-    pred_df_sorted = (
-        pred_df.select_dtypes(exclude=["object"])
-        .copy()
-        .apply(lambda col: col.sort_values(ascending=False, ignore_index=True))
+    pred_df_sorted = pd.DataFrame()
+    for label in pred_df:
+        if pred_df[label].dtype == object:
+            continue
+        pred_df_sorted[label] = pred_df[label]
+    pred_df_sorted = pred_df_sorted.apply(
+        lambda col: col.sort_values(ascending=False, ignore_index=True)
     )
 
     frequency = fit_live_predictions_candles / label_period_candles