본문 바로가기
KT Aivle School 5기

미니 프로젝트 3차 / (1) 스마트폰 센서 데이터 기반 모션 분석

by 앵유짱 2024. 5. 15.

 

 

3연속 만난 주주듀오와..
3차 미프시작과 함께 취업으로 (축)퇴교하는 팀원님
흑흑 넘나축하 가취가욥~~~


이번 미니프로젝트 3차는 전체 비대면 :D
총 4일에 걸쳐 2개의 프로젝트를 수행하였다.

  1. 스마트폰 센서 데이터 기반 모션 분류 (1~2일 차)
  2. 주차 수요 예측 (3~4일 차)

 
이번 글에서는 "스마트폰 센서 데이터 기반 모션 분류" 프로젝트에 대한 내용을 작성하고자 함


스마트폰 센서 데이터 기반 모션 분류

 

 
아래와 같이 3가지 단계를 거쳐 모델링을 수행하였다
 
1. 탐색적 데이터 분석
    - 변수 중요도, EDA, Target 구분
 
2. 기본 모델링
    - 데이터 전처리, 분류모델생성 및 비교
 
3. 단계별 모델링
    - Target 별 분류 모델 생성, 모델 통합, 성능비교
 


1. 탐색적 데이터 분석

무려 561개의 행..

 
➡️ 데이터의 기본 정보를 살펴보았다
 


➡️ 'Activity'에 대한 단변량 분석
 


agg(regation), sensor, axis

 
➡️ features 이름에 대해 변수의 수 count
 


 

➡️ 기본 모델링 진행 후 변수 중요도 추출
feature가 많은 만큼 변수중요도 그래프가 장난이 아닌 것을 확인 할 수 있다...
 


그렇기 때문에 상위, 하위 변수를 선정해서 분석해보았다

➡️ 상위 5개 변수 분석

 

➡️ 하위 5개 변수 분석


 
5개 개별 동작 분석
- is_sitting, is_laying, is_walking, is_walking_up, is_walking_down
반복작업이라 한번만 해놓으면 이후는 쉽게 할 수 있었다
 

is_sitting
is_laying
is_walking
is_walking_up
is_walking_down

 


2. 기본 모델링

 
- RandomForestClassifier

전체 변수 선택 시 성능, 적절한 변수 선택 시 성능

 


 
- LogisticRegression

전체 변수 선택 시 성능, 적절한 변수 선택 시 성능

 


 
- SVM

kernel = 'rbf', kernel='linear'

 


 
- 하이퍼파라미터 튜닝 결과

'C': 1, 'gamma': 0.0001, 'kernel': 'linear'

➡️ SVC로 하이퍼파라미터튜닝을 진행한 결과, 정확도 0.99로 좋은 성능을 얻을 수 있었다
 


3. 단계별 모델링

 
- 정적 행동(Laying, Sitting, Standing) 동적 행동(Walking, Walking-Up, Walking-Down)을 구분하는 모델 생성

좌 : LogisticRegression, 우 : RandomForestClassifier

모델 다르게 썼는데 같은 결과 나옴


 
- 정적 동작 세부 분류 (Laying, Sitting, Standing 를 분류하는 모델)
- 동적 동작 세부 분류 (Walking, Walking Upstairs, Walking Downstairs를 분류하는 모델) 
 

좌 : 정적 동작 세부 분류, 우 : 동적 동작 세부 분류 ( 둘 다 LogisticRegression 사용)


 
- 합쳐서 최종 분류모델 만들기 및 성능평가
- 위의 모델을 통합

최종 분류 모델


분류모델 생성 후기

  1. 적절히 선택한 변수
    • 변수 중요도 상위 100로 결정해서 모델링 해보기
    • 변수 중요도 상위 1 ~ 400 까지 변수를 하나씩 늘려가며 모델링 및 성능 비교
  2. 다양한 모델 생성
    • 생성 모델의 결과 비교 후 가장 성능이 좋은 모델 선택하여 사용
  3. 하이퍼파라미터 튜닝
    • 랜덤포레스트 시 GridSearchCV 사용하여 최적 성능을 보인 maxdepth 사용

비즈니스 아이디어

우리 23조는 시간이 조금 남아서 센서 데이터 활용 비즈니스 아이디어도 생각해보았다

  1. 건강 앱의 게이미피케이션
    • 걸음 걸이로 칼로리 소모를 보여줄 때, 단순 걸음이 아닌 오르내리막 관련 칼로리 소모를 계산하여 보여주기
    • 출발지, 목적지 경로를 설정하고 설정 경로의 남은 평지, 오르막, 내리막 비율을 알려주어 성취감 높임
    • 같은 목적지를 공유하는 사람들끼리 인증샷을 남겨 해당 사진을 함께 볼 수 있는 기능
    • 경사까지 고려한다면 더 좋은 결과를 표시할 수 있으므로, 해당 센서 데이터를 통해 경사를 예측하는 기능을 생성
  2. 분실 앱
    • 사람의 속도를 넘어서는 급격한 속도변화의 경우 분실 신고
  3. 재활 치료 도우미 앱
    • 주기적으로 움직임이 필요한 재활 치료시 정적 동작 일정시간 유지시 알람을 보내주는 의료도우미 앱

이어서 3~4일 차 주차 수요 예측 후기를 올릴 예정입니다..
to be continue..