Handle sparse event buckets in entry screening

This commit is contained in:
Codex
2026-06-28 00:53:54 +08:00
parent 340d1dd91b
commit 1fd46ff3c9
2 changed files with 21 additions and 2 deletions
+9 -1
View File
@@ -14,7 +14,7 @@ if str(TRAINING_ROOT) not in sys.path:
sys.path.insert(0, str(TRAINING_ROOT))
from trader_training.onnx_export import LinearHead, export_heads
from trader_training.entry_feature_screen import _screen_edge_column
from trader_training.entry_feature_screen import _bucket_edges, _screen_edge_column
from trader_training.io_utils import read_json, write_json
from trader_training.labels import ENTRY_LABEL_METHOD, _path_stats_for_group, build_entry_labels
from trader_training.ofi_feature_experiment import l1_snapshot_diff_ofi_quote
@@ -48,6 +48,14 @@ class TrainingContractTest(unittest.TestCase):
self.assertEqual("long_actual_plan_net_edge_bps", _screen_edge_column(dataset, "LONG"))
self.assertEqual("short_actual_plan_net_edge_bps", _screen_edge_column(dataset, "SHORT"))
def test_entry_feature_screen_keeps_zero_inflated_event_features(self) -> None:
values = np.concatenate((np.zeros(5000), np.linspace(1.0, 100.0, 500)))
edges = _bucket_edges(values)
self.assertGreaterEqual(len(edges), 3)
self.assertEqual(-np.inf, edges[0])
self.assertEqual(np.inf, edges[-1])
def test_split_builder_uses_locked_validation_contract(self) -> None:
with tempfile.TemporaryDirectory() as tmp:
data_root = Path(tmp)