Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
6
6-axis Sensor Data Trainer
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • KEIT Chience
  • 6-axis Sensor Data Trainer
  • Wiki
  • Home

Last edited by AYM Dec 31, 2020
Page history

Home

프로그램 구조도

그림1

함수 명세서

__main__

  • 입력 : (required) user_id 리스트, (not required) num of datasets를 실행 파라미터로 받는다.
  • 반환 : X
  • 주요기능 : 입력된 유저에 대해서 각각 first, second 학습모델을 생성하도록 호출합니다.
  • 특이사항 : 입력된 유저 id가 OLDER 테이블에 없으면 프로그램을 멈춥니다. num of datasets보다 모자란 label이 존재하는 유저에 대해서는 모델 생성을 생략합니다.

train_first_model

  • 입력 : user_id
  • 반환 : X
  • 주요기능 : K-Fold(K=5)를 적용하여 7가지 행동유형에 대한 first model을 생성한다. first model은 100단위 epoch학습에 대해 평균정확도가 가장 높은 epoch에 대한 전체 데이터셋을 학습하여 생성한다. K-Fold cross validation중 각 100단위 epoch마다 생성된 confusion matrix와 학습모델들 역시 저장한다.
  • 특이사항 : X

train_second_model

  • 입력 : user_id
  • 반환 : X
  • 주요기능 : cross validation없이 3가지 행동유형(앉는중, 서는중, 가만히 있는 중)에 대한 학습을 수행한다. 100단위 epoch마다 test accuracy가 가장 높은 epoch에 대해 학습으로 second model을 생성한다. 100단위 epoch마다 학습된 confusion matrix와 학습모델들 역시 저장한다.
  • 특이사항 : X

data_processing

  • 입력 : user_id, is_second(default=False)
  • 반환 :
    1) is_second=False면, (X, y)투플
    X: (?, 50, 7)형태의 ?개의 데이터셋들
    y: 각 데이터셋에 해당하는 label 배열
    2) is_second=True면, (X_train, X_test, y_train, y_test)투플
    X_train: 각 label별 80% 랜덤 추출된 데이터셋들
    X_test: 각 label별 Test 데이터셋들(train을 제외한 나머지)
    y_train: 각 train데이터셋에 해당하는 label 배열
    y_test: 각 test데이터셋에 해당하는 label 배열
  • 주요기능 : user_id에 해당하는 데이터를 DB에서 불러와 각 label별 동일한 개수의 데이터셋들을 생성하는 전처리 과정을 담당한다. 5step씩 sliding window방식으로 레코드를 추출하고 단 하나의 label만을 가질 경우 데이터셋 후보로 선정, 후보 중 랜덤으로 추출된 데이터셋만을 최종데이터셋으로 반환한다.
  • 특이사항 : is_second=True일 경우 finite central difference가 적용된 데이터셋을 구성한다.

control_num_datasets

  • 입력 : 레이블별 불균형한 개수의 데이터셋들(dictionary)
  • 반환 : 레이블별 num of datasets으로 동일한 개수의 데이터셋들
  • 주요기능 : num of datasets으로 랜덤추출하여 각 레이블별 데이터셋 개수를 맞춥니다.
  • 특이사항 : 데이터셋 개수가 부족한 레이블이 있다면 예외를 발생시켜 해당 유저에 대한 모델 생성을 중단합니다. '앉아있는 중'과 '서있는 중'은 num of datasets의 절반씩 추출하여 나중에 '가만히 있는 중'으로 합쳐지도록 합니다.

confusion_matrix_manual

  • 입력 :
    confusion_matrix: True label과 prediction label에 대해 Counting된 matrix
  • 반환 : X
  • 주요기능 : python seaborn package를 활용해 confusion matrix 그림을 생성하여 저장합니다.
  • 특이사항 : X
Clone repository
  • Home