KT AIVLE SCHOOL

KT aivle school 3차 미니프로젝트 --(1)

just do it 7 2023. 3. 28. 17:20

이번 미니프로젝트는 머신러닝 미니프로젝트입니다.!!

총 3/15~3/17 3일간 진행되었습니당

 

 

미니프로젝트에 앞서!!

일시 : 2023.3.12.(일) 11:00
장소 : 전주 한옥마을 내 학인당(완산구 향교길 45)

몇일 전 주말동안 귀여운 조카(누나 딸!) 돌잔치도 다녀왔습니다!!

서은이 첫돌 추카추카!!

매형이 제가 지금 배우는 것과 비슷한 일을 하고 계셔서 매형에게 힘찬 응원과 에너지도 함께 받고오는 시간이었습니당!

항상 응원과 격려를 해주시는 매형께 항상 감사함을 느낍니당,,


자 그럼 이번 미프 3차로 넘어가봅시당!

이번 3차 미프는 1일차 데이터 분석, 2일차 모델 튜닝, 3일차 모델검증 을 통해 진행되었습니다.

 

<목표>
훈련 데이터와 센서 그룹 데이터를 읽어와 기초 데이터 분석을 수행하고
훈련 데이터로 모델링 하여 정확도 95% 이상을 달성

 

미션1. 센서에서 수집한 데이터로 6가지 행동을 분류할 수 있는 AI 모델을 만들어보기

6가지 행동 패턴: STANDING, SITTING, LAYING, WALKING, WALKING_UPSTAIRS, WALKING_DOWNSTAIRS
을 나타내는 것이 Target = 'Activity' 입니다.

  • 단말기 개발팀은 스마트워치의 센서에서 수집된 데이터를 분석하여 계단오르기 활동을 인지할 수 있는 AI 모델링과 계단오르기를 분류 할 때 의미있는 feature 들을 선정해 달라는 요청이 있었습니다.
  • 미션1에서는 6가지의 행동패턴을 분류하는 AI 모델링을 수행한뒤 모델 성능 평가 지표를 출력해 주세요.
  • 6가지 행동 패턴: STANDING, SITTING, LAYING, WALKING, WALKING_UPSTAIRS, WALKING_DOWNSTAIRS

 

ai모델링을 해보면서 precision, recall, accuracy 값을 측정할 수 있었습니다.

 

confusion_matrix

: 혼동행렬으로 예측 했을 때 맞은 갯수 혹은 틀린 갯수를 직관적으로 보여줍니다.

 

classification_report

: precision 값과 recall 값을 보여주고 accuracy 값 또한 보여줍니다.

 

 

 

미션2. 행동분류 Feature 분석
이전 미션1 에서 센서에서 수집한 데이터로 6가지 행동을 분류할 수 있는 AI 모델을 만들어 보았습니다.
 
  • data 데이터프레임에서는 'activity'와 'subject' 열을 제외한 각 feature는 -1과 +1 사이의 실수로 되어 있는 데이터가 있습니다.
  • 미션2 에서는 스마트워치가 6가지 행동을 분류 하는데 어떤 feature가 영향을 많이 미치는지 모델링을 통해 중요도 상/하위 feature 들을 선별하고 해당 feature의 데이터 분포를 확인 하겠습니다.
  • 6가지 행동 패턴: STANDING, SITTING, LAYING, WALKING, WALKING_UPSTAIRS, WALKING_DOWNSTAIRS

 

feature_importances_파라미터

# importance_data 판다스 데이터프레임 변수 생성 및 초기화
importance_data = pd.DataFrame({
    "feature_name": x.columns,
    "feature_importance": rf_model.feature_importances_
})

importance_data

데이터 프레임의 중요도를 뽑아주는 파라미터 입니다.

중요도 추출
seaborn을 이용한 시각화

상위 5개 feature

1. tGravityAcc

2. fBodyAccjerk

3. fBodyGyro

4. fBodyAccjerk

5. fBodyACC

 

기존 항상 데이터프레임 형식만 사용해왔는데 이번 강사님께서는 시리즈형태로 바꾸어 코드를 작성하여 초반에 헷갈림이 있었던거 같습니다.

데이터 프레임으로 만드는 방법은 [[]]를 사용하거나 reset_index구문을 사용하여 만들수 있습니다.

 

이장래 강사님께 이론시간에 배운 내용 이외에 다른 방법들을 프로젝트를 통해 경험해보았습니다

이장래 강사님께서는 seaborn 시각화를 화려하다고 싫어하셨는데 아쉽게도 저는 seaborn이 굉장히 마음에 들었고

시각화할때는 항상 seaborn을 사용하였습니다.

 

seaborn 참고사이트입니다.

 

https://seaborn.pydata.org/api.html

 

 

다음에는 3차 미니프로젝트 2,3편과 미니프로젝트4차, 미니프로젝트5차, Aice Associate후기 및 aivleday 1차를 통해 돌아오겠습니다.!!