제로베이스_Machine Learning (6)

KulangK·2023년 8월 18일

Machine Learning

목록 보기
6/13
post-thumbnail

📄 목차

  1. Logistic Regression
    • Logistic Regression 관련 내용
    • 와인 데이터 실습
    • PIMA 인디언 당뇨병 예측 실습
  2. 정밀도와 재현율
  3. 앙상블 기법
    • 앙상블 기법이란?
    • HAR Data 실습
      • Decision Tree 적용
      • Random Forest 적용
      • 중요 특성 추출

1. Logistic Regression

Logistic Regression 관련 내용

  • Linear regression은 선형 회귀로, polynomial 등의 다차수 함수를 만들거나 1차의 직선을 만드는 방식임. 만약 분류가 필요한 경우, outlier로 인해 분류에 어려움이 생기는 경우가 있음.
    • 이 때, sigmoid를 적용하면 항상 0~1 사이의 값을 가질 수 있어 분류 적용에 용이


  • Decision Boundary
    • Iris 분류에서 decision region으로 그래프를 만들었을 때 데이터들을 나눈 '선'들을 decision boundary 라고 함.
      • 단일 직선형으로 0, 1로 나눌 수도 있고,
      • 여러 직선이 조합되어 다양한 답을 내놓을 수도 있으며,
      • 원형 등의 모양이나 2차 함수 등이 될 수도 있음

  • Cost Function


와인 데이터 실습


  1. 데이터 받고, 간단하게 logistic regression accuracy 확인

  1. 파이프라인 생성 및 테스트 (스케일러 적용 및 파이프라인 다뤄보기)

  1. Decision tree와 logistic regression 중 어떤 것이 분류에서 더 나은 성능을 보이는지 확인

  • 물론 제대로 분류 되었는지에 대해서 여러 방법을 통해 확인 필요
    • 결과와 데이터 랜덤 추출하여 대조
    • logistic regression 그래프와 데이터 표기하여 확인 등

PIMA 인디언 당뇨병 예측 실습

  • 배경:
    1. The Akimel O'odham (O'odham for "river people"), also called the Pima, are a group of Native Americans living in an area consisting of what is now central and southern Arizona, as well as northwestern Mexico in the states of Sonora and Chihuahua. (Wikipedia)
    2. 50년대까지 PIMA 인디언은 당뇨가 없었으나 20세기 말, 50%가 당뇨에 걸림
    3. 본래 강가에서 수렵하던 소수 인디언이었으나, 미국 쪽 인디언은 미 정부에 의해 강제 이주 후 식량을 배급 받음
    4. 어떻게 50년만에 특정 민족 50%가 당뇨에 걸렸는가에서 시작


  • 데이터 컬럼:
    • Pregnancies = 임신 횟수
    • Glucose = 포도당 부하 검사 수치
    • BloodPressure = 혈압
    • SkinThickness = 삼두근 (팔) 뒤쪽 피하지방 측정값
    • Insulin = 혈청 인슐린
    • BMI = 체질량지수
    • DiabetesPedigreeFunction = 당뇨 내력 가중치 값
    • Age = 나이
    • Outcome = 클래스 결정 (당뇨 유무)

  • 분석 흐름
    1. 데이터 읽기 / 가공
    2. 상관관계 확인 및 재가공
    3. 데이터 분리 및 pipeline 생성, 모델의 특성 수치 확인
    4. 모델의 각 요소 중요도 확인

1. 데이터 읽기 / 가공

2. 상관관계 확인 및 재가공

3. 데이터 분리 및 pipeline 생성, 모델의 특성 수치 확인

  • 위 특성 수치는 상대적 의미를 부여할 standard가 존재하지 않으므로 값 자체 만으로 아무 의미 없음

4. 모델의 각 요소 중요도 확인


2. 정밀도와 재현율 Trade-off (Precision, Recall)

  • 강의에서 다룬 내용
    • 와인 데이터 이용 logistic regression 적용
    • classification report / confusion matrix 사용하여 precision, recall, TP, FN, TN, FP 등 확인
    • Precision-Recall curve 확인
    • Binarizer 이용하여 threshold 변경한 뒤 classification report 변경 확인
  • 주로 사용되는 방법은 아님
    threshold 변경으로 인해 모델의 어떤 부분이 변화하는지, 해당 변화는 원하는 변화인지, 변경으로 인해 편향성은 생기지 않았는지 등의 평가 필요
  • 정밀도 재현율 복습
    • 정밀도 (precision): TP / (TP + FP)
      • 뽑아낸 결과가 정확할 확률 (how many retrieved items are relevant?)
    • 재현율 (recall): TP / (TP + FN)
      • 전체에서 얼마나 제대로 뽑았는지 (how many relevant items are retreived?)

3. 앙상블 기법

앙상블 기법이란?

  • 앙상블 기법: 여러 개의 분류기를 생성, 예측을 결합하여 정확한 최종 예측을 기대하는 기법
    • 다양한 분류기의 예측 결과를 결합함으로써 단일 분류기보다 신뢰성이 높은 예측 값을 얻음
    • 정형 데이터를 대상으로 하는 분류기에서는 앙상블 기법이 뛰어난 성과를 보임

  • 앙상블 기법 종류:
    • Voting: 전체 데이터 셋 을 다양한 분류기에 적용하여 최종 결정하는 방법
    • Bagging: 데이터를 중복 허용 샘플링 하여 각각의 데이터에 같은 알고리즘을 적용하여 최종 결정 (대표적인 예: 랜덤포레스트)
      • 각각의 분류기에 데이터를 각각 샘플링하여 추출하는 방식: 부트스트래핑 (bootstrapping)
  • Machine Learning:
    • 비정형 데이터 (이미지와 같은 것들) >> deep learning 필요
    • 정형 데이터 (table, excel 데이터 등) >> machine learning 가능
  • Random Forest (랜덤 포레스트) :
    • 같은 알고리즘으로 구현하는 배깅(bagging)의 대표적인 방법
    • 앙상블 방법 중 비교적 속도가 빠르고, 다양한 영역에서 높은 성능을 보여주고 있음
    • 랜덤 포레스트는 decision tree를 기본으로 함
    • 부트 스트래핑으로 샘플링 된 데이터마다 DT가 예측한 결과를 소프트보팅으로 최종 예측 결론을 얻음

  • 최종 결정 방법:
    • 하드 보팅: 예측 값은 다수의 모델이 내린 결정에 따름 (다수결과 비슷)

    • 소프트 보팅: 예측 확률에 평균을 내려, 높은 값을 따라감. (동률일 경우 다수결)


HAR Data 실습

  • HAR = Human Activity Recognition
    • 사람의 행동을 인식하는 것
    • 예시: IMU 센서 (gyro, 가속도 센서... 등)
    • 센서 신호 >> 특징 추출 (시간/주파수 영역) >> 모델 학습 >> 행동 추론
  • 사용할 데이터: UCI HAR data set
    • 스마트폰을 장착한 사람의 행동을 관찰한 데이터
    • 실험 대상: 19-48세 연령의 30명
  • 데이터:
    • 삼성 갤럭시 S II 착용, 50Hz 주파수로 데이터 획득
    • 6가지 활동 (walking, walking_upstairs, walking_downstairs, sitting, standing, laying) 수행
    • 내장된 가속도계 / 자이로스코프를 사용하여 50Hz의 일정한 속도로 3축 선형 가속 및 3축 각속도 캡처
    • 데이터 수동 라벨링 위해 비디오로 기록
      (무작위 두 세트 분할, 70% 훈련, 30% 검증)
    • 중력/신체 운동 성분을 갖는 센서 가속 신호는 버터워스 저역 통과 필터 사용하여 신체 가속 및 중력으로 분리
      • 중력은 저주파 성분만을 갖는 것으로 가정, 0.3Hz 차단 주파수 가진 필터 사용

1. HAR data Decision Tree 적용

  • 데이터 읽기 및 데이터프레임화 (전처리)

  • Decision Tree 적용 및 GridSearchCV 이용한 최적화 (max_depth)


2. HAR data Random Forest 적용

  • 데이터 읽기 및 데이터프레임화 (전처리)는 이전 과정에서 진행되었으므로 pass
  • gridsearchCV를 이용하여 다양한 random forest parameter 설정 후 적용 (최적화)

  • best parameter 적용하여 test 데이터 예측 값 확인 (accuracy_score on test data)

  • 헷갈리면 안되는 점: GridSearchCV 를 이용해 얻은 mean_test_score는 해당 parameter들을 적용 시켰을 때 교차 검증 값임. 즉 훈련 데이터를 자체적으로 훈련/검증으로 다시 나누어 작업한 것의 검증 결과 값. 실제 검증 전 해당 검증 값이 높은 parameter를 사용하기 위한 준비과정으로 봐야 함.

3. 중요 특성 추출

  • 중요 특성 추출

  • 그래프화

  • 재학습 (연산 속도 <> 정확도 트레이드오프)

    • 몇 가지 특성만을 이용해 학습 할 것인지, 정확도는 몇 %를 기준으로 둘 것인지, 연산 속도는 어느 정도 나와야 이용자의 불편을 최소화 할 수 있는지 등등 추가적으로 생각하고 비교해야 하는 데이터들이 있음.
  • 주의사항

    재학습 단계에서 y_train을 reshape한 이유

    • DataConversionWarning 이 뜨는데, 기존 학습 시킬 때는 series로 변경 시켰기 때문에 지나친 부분임.
profile
새싹 데이터 분석가 https://github.com/KulangK

2개의 댓글

comment-user-thumbnail
2023년 8월 18일

좋은 글 감사합니다. 자주 올게요 :)

1개의 답글