External Learning & Competitions
[2024][Basic][P3] Music Genre Classification
10-epoch 음악 장르 분류 결과를 다시 읽고, 리듬·스펙트럼 특징과 RBF-SVM으로 로컬 기준선을 개선했다.
- Platform
- Kaggle
- 진행 기간
- 2024-08-11–2024-08-27
- Host
- sw.baek_00
- Metric
- Accuracy
- 모델 조건
- 모델을 직접 설계해 수행하는 조건

당시 학습 결과
Notebook에는 10 epoch 뒤 train loss 1.4228, train accuracy 0.5088이 남아 있었다. 음악 장르는 시간축 신호이므로 raw waveform만 넣기보다 어떤 음향 특징이 장르 차이를 드러내는지 먼저 비교했다.
특징을 다시 구성했다
MFCC와 delta는 음색의 시간 변화를, chroma는 pitch-class 에너지를, spectral centroid·bandwidth·rolloff는 주파수 분포를 요약한다. 각 통계량을 표준화한 뒤 RBF-SVM의 C를 training fold 안에서만 선택했다.
로컬 결과
80/20 stratified holdout에서 accuracy 0.8142, balanced accuracy 0.8120, macro-F1 0.8108을 얻었다. 단순 기준선의 macro-F1 0.0188과 비교하면 모든 class를 거의 한쪽으로 보내던 문제가 줄었다.
남은 한계
파일에는 track이나 artist group metadata가 없었다. 같은 artist의 유사한 녹음이 양쪽 분할에 있을 가능성을 배제하지 못하므로, 이 수치는 무작위 층화 분할의 로컬 결과다. Kaggle 제출 점수나 순위로 바꾸어 쓰지 않았다.
다시 실행하면서 바꾼 점
남아 있던 Notebook 결과와 새 로컬 홀드아웃 결과를 비교했다. 80/20 stratified holdout plus five-fold training-only C selection; seed 42 조건에서 MFCC, delta, chroma and spectral summaries + StandardScaler + RBF-SVM(C=3)을 사용했다.
- 당시 Notebook
- 10 epochs; final train loss 1.4227865277; final train accuracy 0.5087527352
- 단순 기준선
- accuracy 0.1038; balanced accuracy 0.1000; macro-F1 0.0188
- 수정한 모델
- accuracy 0.8142; balanced accuracy 0.8120; macro-F1 0.8108
장르별 트랙·아티스트 그룹 메타데이터가 없어 아티스트 조건부 분할은 수행하지 못했습니다. 결과는 로컬 무작위 층화 홀드아웃이며 Kaggle 점수가 아닙니다.
위 수치는 문서화한 로컬 분할에서 얻었다. 로그인된 Kaggle 제출 이력·점수·순위까지 다시 확인한 값은 아니다.