1. 대회 설명
- 목표: 아이들의 수면 상태(awake, asleep, unknown)를 wearable device의 센서 데이터를 활용하여 예측하는 것
- 문제 유형: 멀티클래스 분류 문제
- 데이터 배경
-> train_series.parquet: 센서 기반 시계열 데이터 (시간, 각종 센서 값 포함)
-> train_events.csv: 수면 상태 레이블이 포함된 이벤트 구간
-> 센서는 뇌파(EEG), 근전도(EMG), 가속도계 등 다양한 생체 신호를 포함
2. 성능 평가 방식 이해
3. 데이터 전처리
3-1) EDA
- 센서 데이터는 매우 길고 고해상도 (1Hz~128Hz)
- 각 subject별로 데이터의 길이와 레이블 분포가 상이
- 시각화로 signal의 패턴 차이를 파악하며 레이블별 특성을 분석
3-2) Data Cleansing
- NaN 값은 거의 없지만, 이벤트 없는 구간을 제거하거나 적절히 처리 필요
- 일부 센서에 잡음이 섞여 있는 경우 normalization 혹은 filtering이 필요함
3-3) Feature Engineering
- 고정된 윈도우 사이즈(예: 30초~60초)로 데이터를 잘라서 특징 벡터 생성
- FFT 기반의 주파수 도메인 특징, 표준편차/평균/중앙값 등의 통계량 사용
- custom feature extractor를 통해 다양한 신호 특성을 반영
4. 모델링
4-1) 모델
- 1D-CNN 모델을 기반으로한 deep learning 구조 사용
- 시계열 데이터를 다루기 위한 Conv 블록, GlobalAveragePooling, Dense layers 구성
4-2) 데이터 분할
- Stratified K-Fold (5-fold) 방식 사용, 각 fold별로 subject 간 leakage가 없도록 주의
- validation은 같은 subject 내에서 시간 순서를 유지해야 의미 있음
4-3) 하이퍼파라미터 튜닝
- CutMix, MixUp 등 시계열 augmentation 적용
- 모델 앙상블을 위해 fold별로 모델을 저장하고 예측 시 평균 처리
4-4) 최종 성능
- CV Score: 0.835 (macro F1)
- Public LB: 0.788
5. 정리(Lesson & Learned)
- 시계열 데이터에 적합한 윈도우 사이즈 선정이 모델 성능에 큰 영향
- 주파수 기반 특징 + 통계적 특징의 조합이 유효함
- Subject 간 data leakage를 방지하는 것이 중요함
- EDA 및 signal 분석은 도메인 지식을 함께 고려하는 것이 성능 향상에 도움이 됨
Child Mind Institute - Detect Sleep States