Child Mind Institute - Detect Sleep States

MSMoon·2025년 5월 16일

kaggle 학습

목록 보기
18/18
post-thumbnail

1. 대회 설명

  • 목표: 아이들의 수면 상태(awake, asleep, unknown)를 wearable device의 센서 데이터를 활용하여 예측하는 것
  • 문제 유형: 멀티클래스 분류 문제
  • 데이터 배경
    -> train_series.parquet: 센서 기반 시계열 데이터 (시간, 각종 센서 값 포함)
    -> train_events.csv: 수면 상태 레이블이 포함된 이벤트 구간
    -> 센서는 뇌파(EEG), 근전도(EMG), 가속도계 등 다양한 생체 신호를 포함

2. 성능 평가 방식 이해

  • Mean F1 Score

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

0개의 댓글