관리 메뉴

블로그

[모델링] 스마트폰 센서 데이터 기반 행동 인식 분류 # 1 EDA, 모델링 본문

공부

[모델링] 스마트폰 센서 데이터 기반 행동 인식 분류 # 1 EDA, 모델링

beenu 2024. 3. 28. 03:53
반응형
프로젝트 개요

 

도메인 이해
  • 인간 행동 인식(Human Activity Recognition)
    • 다양한 센서를 활용하여 사람의 모션에 관련된 정보 수집 및 해석하여 행동 인식
    • 센서 신호 → 특징 추출 → 모델 학습 → 행동 추론

 

데이터 소개
  • Subject 컬럼 : 피험자 실벽자 → 삭제
  • 데이터 수집 방식
    • 가속도 센서 : 일직선으로 움직이는 물체의 선형가속도 측정 (방향 X)
    • 자이로스코프 센서 : 회전하는 물체의 각속도 측정 (방향 O)
    • 수집 방법 : 2.56초 범위(window), 1.28초 간격으로 이동하며 데이터 샘플링 (sliding window 방식 사용)
    • 하나의 센서에서 수집된 신호를 가공방법을 달리하여 집계
  • 피처가 561개로 굉장히 많다 ! →  트리 모델을 사용해서 importance features로 변수 중요도 확인한 후 상위 몇 개의 feature만 골라 분석해보기
  • 단계별 모델링 → 정적, 동적 동작들 분류해서 단계별 모델링 해보기 
    • random forest로 중요 피처 뽑아서 분석
    • 정적, 동적으로 나눠 비교
    • 각 행동여부로 나눠 비교

탐색적 데이터 분석 (EDA)

 

  • 피처 개수가 561개로 매우 많음
  • Random Forest로 중요한 피처 몇 개만 뽑아 확인하기

 

  • 6개 클래스를 구분할 때 중요하게 생각되는 상위 5개, 하위 5개 피처 확인
  • 그래프 그려서 확인해봤을 때, LAYING만 따로 떨어져있는 경우가 많았음
  • 하위 5개 피처를 확인해봤을 때, 정적인 동작과 동적인 동작이 구분되는 경우가 있었음
    • 어떤 기준으로 데이터를 확인하느냐에 따라 변수 중요도가 달라질 수 있다!

 

  • 변수 중요도 데이터와 센서 계층 정보 데이터를 결합하여 merged_df 생성
  • sensor별, sensor와 agg별 변수 중요도를 확인해봄
  • 동적 / 정적 여부, 각 클래스 여부에 따라 위 분석을 똑같이 진행해주었다!

 

모델링

 

1) Random Forest

  • 피처 중요도를 확인한 후, 상위 100개의 피처만 사용해서 분류했더니 정확도가 더 상승함
  • 피처 개수를 조절하면서 어느 정도가 가장 적당한지 확인해보기

 

  • 반복문으로 피처 개수를 조절하며 모델링하고 accuracy를 리스트에 저장
  • 지정한 반복횟수가 끝나고 그래프를 그려봤더니 약 20개 이후부터는 정확도가 크게 바뀌지 않음
  • 피처 개수를 적당히 30개 정도로 지정하고 다시 모델링을 수행했더니 정확도가 조금 더 상승한 것을 확인할 수 있었음

 

2) Deep Learning

 

  • 다중 레이어 모델을 하나 생성하고 학습 수행
  • 다중 클래스이므로 activation은 softmax로 지정
  • 학습 결과 그래프를 그려보았는데 .. 구리다

 

  • 학습한 모든 모델을 비교해보았는데 SVM이 가장 좋은 성능을 보여주었음
  • 딥러닝은 성능이 너무 낮게 나옴. 내일 다중 입력 모델 설계하고 성능을 비교해봐야 할 듯 
728x90
반응형