chore: deprecate legacy dataset generation, remove stale comparison test

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
21in7
2026-03-21 18:38:07 +09:00
parent 5bad7dd691
commit c0da46c60a
2 changed files with 6 additions and 20 deletions

View File

@@ -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)

View File

@@ -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가 발생하지 않아야 한다."""