Skip to content

Commit bd10afc

Browse files
authored
Merge pull request freqtrade#12195 from Kritoooo/fix-skip-empty-test-labels
feat: warn user with clear message when test labels empty
2 parents fe466e2 + 3bc1afd commit bd10afc

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

freqtrade/freqai/base_models/BaseRegressionModel.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import numpy.typing as npt
77
from pandas import DataFrame
88

9+
from freqtrade.exceptions import DependencyException
910
from freqtrade.freqai.data_kitchen import FreqaiDataKitchen
1011
from freqtrade.freqai.freqai_interface import IFreqaiModel
1112

@@ -63,12 +64,19 @@ def train(self, unfiltered_df: DataFrame, pair: str, dk: FreqaiDataKitchen, **kw
6364
dd["train_labels"], _, _ = dk.label_pipeline.fit_transform(dd["train_labels"])
6465

6566
if self.freqai_info.get("data_split_parameters", {}).get("test_size", 0.1) != 0:
66-
(dd["test_features"], dd["test_labels"], dd["test_weights"]) = (
67-
dk.feature_pipeline.transform(
68-
dd["test_features"], dd["test_labels"], dd["test_weights"]
67+
if dd["test_labels"].shape[0] == 0:
68+
raise DependencyException(
69+
f"{pair}: test set is empty after filtering. "
70+
f"This is usually caused by overly strict SVM thresholds or insufficient data. "
71+
f"Try reducing 'test_size' or relaxing your SVM conditions."
6972
)
70-
)
71-
dd["test_labels"], _, _ = dk.label_pipeline.transform(dd["test_labels"])
73+
else:
74+
(dd["test_features"], dd["test_labels"], dd["test_weights"]) = (
75+
dk.feature_pipeline.transform(
76+
dd["test_features"], dd["test_labels"], dd["test_weights"]
77+
)
78+
)
79+
dd["test_labels"], _, _ = dk.label_pipeline.transform(dd["test_labels"])
7280

7381
logger.info(
7482
f"Training model on {len(dk.data_dictionary['train_features'].columns)} features"

0 commit comments

Comments
 (0)