# fumen-analyze 진행 리포트 (2026-04-23)

## 1. 현재 성능 및 상태
- **최종 MAE**: **0.1731** (전체 데이터셋 기준)
- **사용 모델**: `sklearn.ensemble.GradientBoostingRegressor`
- **학습 전략**: 
    - `warm_start=True`를 활용하여 기존 모델을 파괴하지 않고 업데이트.
    - 실행 시마다 랜덤하게 200개의 코스를 샘플링하여 학습 (다양성 확보).
    - 총 2,130개의 Estimator(트리)가 누적됨.

## 2. 피처 엔지니어링 (30개 지표)
- **물리적 밀도**: Global NPS, Effective NPS(쉼표 제외), 구간별(Q1~Q4) NPS, Peak NPS(1s, 2s, 5s), Spike Index.
- **체력 및 지구력**: 최대/평균 스트림 길이, 스트림 개수 및 비율, 휴식 구간(Resting) 비율.
- **기술적 복잡도**: Don/Ka 비율, 색상 전환율, 3노트 단위 패턴 복잡도, 손 배치 전환 지수(Hand-switching).
- **리듬 및 기믹**: 엇박 비율(Denominator 분석), 리듬 표준편차, SV/BPM 변화 빈도 및 변동성.

## 3. 파일 구조
- `src/factorize.ts`: TJA에서 30개 피처 추출 (BigInt 및 타입 체크 완비).
- `model/train.py`: 점진적 학습 및 K-Fold 교차 검증 지원.
- `run_pipeline.sh`: 데이터 추출 + 누적 학습 통합 스크립트.
- `run_predict.sh`: 개별 TJA 상수 예측용 스크립트.

## 4. 향후 개선 아이디어
- **데이터 증강**: 비슷한 채보를 미세하게 변형하여 학습 데이터 확보.
- **패턴 정밀 분석**: '기차(Stream)' 내의 특정 반복 패턴(ddk, dkk 등) 가중치 부여.
- **오차 분석**: 에러가 큰 특정 곡들을 따로 추출하여 어떤 피처가 부족한지 분석.
