주제
스마트폰 센서 기반 데이터를 활용한 행동 인식
문제 유형
Classification
중점 사항
•
561개 feature에 대한 데이터 탐색
•
6개 class 관계를 고려한 모델링
데이터 형태
•
총 7353 데이터
◦
피처 수 : 563개
•
데이터 수집 방법
◦
가속도 센서
일직선으로 움직일때 선형 가속도(x,y,z축으로 얼마나 빠르게 움직였는가)를 측정하는 센서
◦
자이로스코프 센서
회전하는 물체의 각속도를 측정하는 센서(x, y, z축으로 각도가 얼마나 변했는가)
◦
수집 : 2.56초 범위 내(window)에서 하나의 데이터 측정 → 1.28초 간격으로 이동하며 측정
◦
집계 : 하나의 window내에서 수집된 여러 데이터들을 신호별로 분리 후 집계(mean, std, min, max 등)
x 변수 이해
•
변수 이름의 구성
◦
Sensor + Aggregation + Axis
▪
tBodyAcc -mean() - X : 가속도 센서
▪
fBodyGyro-std()-Y : 자이로스코프 센서
과제 KEY POINT
•
feature 처리
◦
너무 많음 → PCA / 변수 선택법..?
◦
트리 기반 모델 학습(random forest) 해서 피처 중요도 뽑아내보기
▪
상위 N개의 변수들만 활용해서 분석하기
•
다중 분류
◦
6개 클래스
▪
Standing / Sitting / Laying / Walking / Walking_upstairs / Walking_downstairs
◦
앙상블 모델 사용?
1일차 KEY POINT
•
미션 1 (오전)
◦
랜덤포레스트 모델 생성 후, 변수 중요도 뽑아내기
◦
중요한 상위 N개 변수 선정 → 이들을 가지고 EDA
•
미션2 (오후)
◦
클래스를 정적(0)/동적(1) 행동으로 구분
▪
총 6개의 행동은 2개의 그룹(정적 / 동적)으로 나뉜다.
▪
정적 / 동적으로 클래스를 줄이고 → 다시 Target 변수(is_dynamic)를 생성
▪
어떤 Feature가 2개의 class 그룹으로 구분하는데 중요한지 eda를 통해 찾기
정적 / 동적 클래스로 나눴을 때 중요 변수
•
tBodyAccJerkMag
◦
유클리드 노름을 사용한 가속도 변화비율 3차원 신호 크기 시계열의 산술평균
•
tBodyAccJerk
◦
가속도변화비율 시계열의 산술평균
•
fBodyAcc
◦
고속퓨리에변환을 거친 가속도 시계열의 산술평균
Standing / Not Standing 클래스로 나눴을 때 중요 변수
•
tGravityAcc-mean()-Y
◦
Y축 방향 중력가속도 평균
•
tGravityAcc-max()-Y
◦
Y축 방향 중력가속도 최대값
•
tGravityAcc-min()-Y
◦
Y축 방향 중력가속도 최솟값
•
angle(Y, gravityMean)
◦
(Y축 방향 - 중력가속도 평균) 벡터 사이의 각도
사용할 피처 변수 총정리
•
tGravityAcc-mean()-Y
•
tBodyAccJerk
•
fBodyAcc
•
angle