# 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 등) 가중치 부여. - **오차 분석**: 에러가 큰 특정 곡들을 따로 추출하여 어떤 피처가 부족한지 분석.