From c0da46c60a136e96122a6c1b9254ff11f4de0ed7 Mon Sep 17 00:00:00 2001 From: 21in7 Date: Sat, 21 Mar 2026 18:38:07 +0900 Subject: [PATCH] chore: deprecate legacy dataset generation, remove stale comparison test Co-Authored-By: Claude Sonnet 4.6 --- scripts/train_model.py | 7 ++++++- tests/test_dataset_builder.py | 19 ------------------- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/scripts/train_model.py b/scripts/train_model.py index 788e4e7..c13835a 100644 --- a/scripts/train_model.py +++ b/scripts/train_model.py @@ -9,6 +9,7 @@ sys.path.insert(0, str(Path(__file__).parent.parent)) import argparse import json import math +import warnings from datetime import datetime from multiprocessing import Pool, cpu_count from pathlib import Path @@ -104,7 +105,11 @@ def _process_index(args: tuple) -> dict | None: def generate_dataset(df: pd.DataFrame, n_jobs: int | None = None) -> pd.DataFrame: - """신호 발생 시점마다 피처와 레이블을 병렬로 생성한다.""" + """[Deprecated] generate_dataset_vectorized()를 사용할 것.""" + warnings.warn( + "generate_dataset()는 deprecated. generate_dataset_vectorized()를 사용하세요.", + DeprecationWarning, stacklevel=2, + ) total = len(df) indices = range(60, total - LOOKAHEAD) diff --git a/tests/test_dataset_builder.py b/tests/test_dataset_builder.py index 2b1f4d3..1b45fac 100644 --- a/tests/test_dataset_builder.py +++ b/tests/test_dataset_builder.py @@ -73,25 +73,6 @@ def test_generate_dataset_vectorized_with_btc_eth_has_21_feature_cols(): assert "label" in result.columns -def test_matches_original_generate_dataset(sample_df): - """벡터화 버전과 기존 버전의 샘플 수가 유사해야 한다. - - 벡터화 버전은 전체 시계열로 지표를 1회 계산하고, 기존 버전은 61행 슬라이딩 - 윈도우로 매번 재계산한다. EMA 등 지수 이동평균은 초기값에 따라 수렴 속도가 - 달라지므로 두 방식의 신호 수는 완전히 동일하지 않을 수 있다. ±50% 범위를 - 허용한다. - """ - from scripts.train_model import generate_dataset - orig = generate_dataset(sample_df, n_jobs=1) - vec = generate_dataset_vectorized(sample_df) - if len(orig) == 0: - assert len(vec) == 0 - return - ratio = len(vec) / len(orig) - assert 0.5 <= ratio <= 2.0, ( - f"샘플 수 차이가 너무 큼: 벡터화={len(vec)}, 기존={len(orig)}, 비율={ratio:.2f}" - ) - def test_epsilon_no_division_by_zero(): """bb_range=0, close=0, vol_ma20=0 극단값에서 nan/inf가 발생하지 않아야 한다."""