# TJA 난이도 산정 핵심 요소 (Technical Factors) 학습 모델(DifficultyNet)에 입력되는 8가지 핵심 지표입니다. (spec.md 업데이트 반영) ## 1. 물리적 밀도 - **density_avg**: 평균 노트 밀도 (총 노트 수 / 곡 길이) - **density_peak**: 1초당 최대 밀도 (가장 촘촘한 구간의 노트 수) ## 2. BPM 및 속도 변화 - **bpm_avg**: 곡의 평균 BPM - **bpm_var**: BPM 변화율 (BPM 변속의 다양성) ## 3. 구조적 특징 - **note_count**: 총 노트 수 - **long_note_duration**: 전체 대비 긴 노트(지속형) 점유율 ## 4. 패턴 및 연타 - **complex_ratio**: 복합 패턴(큰 북/작은 북 혼합) 비율 - **roll_count**: 연타(Roll) 노트의 총 개수 ## 계산 로직 - **밀도 계열**: 노트 간 시간 간격(`delta`)의 역수(`1/delta`)로 순시 밀도를 계산하여 `avg`/`peak` 도출. - **BPM 계열**: `#BPM` 및 `#STOP` 명령을 기반으로 시간 축 전개 후 평균 및 표준편차(`var`) 계산. - **패턴 계열**: 슬라이딩 윈도우(4~8개 노트)에서 노트 타입 변화(`d↔k`) 횟수를 측정하여 비율 산정. - **연타 계열**: `#ROLL` 명령 및 입력 밀집 구간 카운트. ## 중요 주의사항 - 모든 Factor는 모델 학습 전 `StandardScaler` 또는 `RobustScaler`를 통해 반드시 이상치를 처리해야 합니다.