feat: warn user with clear message when test labels empty

This commit is contained in:
Kritoooo
2025-09-01 15:55:00 +08:00
parent 5f1d9cbab1
commit 3bc1afd149

View File

@@ -6,6 +6,7 @@ import numpy as np
import numpy.typing as npt
from pandas import DataFrame
from freqtrade.exceptions import DependencyException
from freqtrade.freqai.data_kitchen import FreqaiDataKitchen
from freqtrade.freqai.freqai_interface import IFreqaiModel
@@ -63,12 +64,19 @@ class BaseRegressionModel(IFreqaiModel):
dd["train_labels"], _, _ = dk.label_pipeline.fit_transform(dd["train_labels"])
if self.freqai_info.get("data_split_parameters", {}).get("test_size", 0.1) != 0:
(dd["test_features"], dd["test_labels"], dd["test_weights"]) = (
dk.feature_pipeline.transform(
dd["test_features"], dd["test_labels"], dd["test_weights"]
if dd["test_labels"].shape[0] == 0:
raise DependencyException(
f"{pair}: test set is empty after filtering. "
f"This is usually caused by overly strict SVM thresholds or insufficient data. "
f"Try reducing 'test_size' or relaxing your SVM conditions."
)
)
dd["test_labels"], _, _ = dk.label_pipeline.transform(dd["test_labels"])
else:
(dd["test_features"], dd["test_labels"], dd["test_weights"]) = (
dk.feature_pipeline.transform(
dd["test_features"], dd["test_labels"], dd["test_weights"]
)
)
dd["test_labels"], _, _ = dk.label_pipeline.transform(dd["test_labels"])
logger.info(
f"Training model on {len(dk.data_dictionary['train_features'].columns)} features"