제로베이스_Machine Learning (3)

KulangK·2023년 7월 29일

Machine Learning

목록 보기
3/13
post-thumbnail

📄 목차

  1. Encoder and Scaler
    • Label Encoder
    • Min-Max Scaler
    • Standard Scaler
    • Robust Scaler
  2. Decision Tree를 이용한 와인 데이터 분석
    • Wine
    • 레드와인/화이트 와인 분류
    • 데이터 전처리
    • 맛의 이진 분류
  3. Pipeline
  4. 하이퍼 파라미터 튜닝
    • 교차검증
    • 하이퍼 파라미터 튜닝

1. Encoder and Scaler

Label Encoder

  • 컬럼의 문자열을 숫자로 >> 이후 반대로 숫자를 문자열로 변환하는 기능
    1. fit

    2. transform / inverse transform

    • le.fit_transform() 을 이용하면 한 번에 가능

Min-Max Scaler

  • 데이터 표본에서 최솟값을 0, 최댓값을 1로 두고 그에 맞추어 스케일링 하는 것
    1. fit

    2. transform / inverse transform

      • 데이터의 최솟값을 0, 최댓값을 1로 두고 그에 맞추어 스케일함
    • mms.fit_transform() 을 이용하면 한 번에 가능

Standard Scaler

  • 데이터 셋을 평균이 0, 표준 편차가 1인 데이터로 정규화 시켜주는 것

    • 컬럼 별 작동 함

Robust Scaler

  • 원본 데이터 셋의 median을 0으로 두고, Q1-Q3 간격 (25%-75% 구간) 을 1로 만드는 스케일링

  • boxplot을 이용한 이해 돕기

    • minmax, standard는 다수의 데이터가 존재시 유리함
      • 데이터 수가 적고 이상치가 존재시 불리한 경향이 있음
    • robust scaler는 이상치에 의해 전체 데이터 셋이 편향되지 않는 장점이 있음

2. Decision Tree를 이용한 와인 데이터 분석

Wine

  1. 데이터 읽기 / 컬럼 종류 확인

  2. 분석 용이를 위해 두 데이터 결합 (색 컬럼 추가하여 데이터 구분)

  3. plotly histogram을 통해 등급 / 색상에 의한 분류 대략적 파악


레드와인/화이트 와인 분류기 머신러닝

  1. 학습 데이터와 답 데이터 분리

  2. 데이터 구분 정도 확인

  3. 학습 및 결과 확인


데이터 전처리

  • 주의사항: scaling은 decision tree에 영향을 거의 미치지 않음, 다만 편향치가 높거나 다양한 컬럼이 평균/편차/분산이 너무 달라 적합한 모델을 적용하기 어려울 때 사용하는 것임
  1. 여러 항목 boxplot 확인 및 minmax/standard scaler 적용

  2. 각 scaler로 인해 변화된 내용 확인

  3. Decision Tree 주요 결정 인자 확인


맛의 이진 분류

  1. 등급에 따라 맛을 이진 분류, 학습 진행

  2. 결정 인자 확인하여 계산 착오가 어디서 일어났는지 파악

  3. 오류 수정 후 학습 재진행

  • 애초 70%를 웃돌기에 정확한 판단이 어려움
  • 맛의 기준이 등급이었기 때문에 맛의 선호도 및 맛을 해치는 요소 (과한 산미 등) 가 전혀 반영되지 않았음을 인지
  • 다만 몇 가지는 파악 가능
    1. 알콜 도수 낮은 경우 산미도 적으면 등급이 높아지는 경향이 있음
    2. 알콜 도수 높은 경우 황 화합물도 높으면 등급이 높아지는 경향이 있음

3. Pipeline

  1. pipeline 설계 (적용할 단계, parameter 설정 등)

  2. 데이터셋 준비 (파이프라인에 집어넣을 데이터들 편집)

  3. pipeline 구동 (데이터셋 적용 및 결과 확인)


4. 하이퍼 파라미터 튜닝

교차검증

  • 과적합: 모델이 학습된 데이터에만 과도하게 최적화된 현상.
    이로 인해 일반화된 데이터 / 모집단의 데이터에 대한 예측 성능히 현저히 떨어지는 현상
  • 지금까지 80%, 20% 로 훈련/검증 데이터를 1번 나누어 실행하였으나, 여러 번 진행하여 평균 값을 얻는 것이 교차 검증


KFold를 이용한 교차 검증

  1. 기존 방식대로 먼저 데이터를 불러오고 학습 진행

  2. Kfold 이용하여 교차 검증 (각 fold 학습/결과 확인 후 acc 평균 값 얻기)

Stratified KFold를 이용한 교차 검증

간략하게 교차 검증 하는 방법


하이퍼 파라미터 튜닝

  • 튜닝 대상: 당장은 decision tree의 max_depth와 같은 것들
    • 세세하게 건드릴 수 있는 항목들이 하이퍼 파라미터임

GridSearchCV 활용

  1. 데이터 셋 불러오기 / 가공 / GridSearchCV 적용

  2. 결과 확인 / 최적값 확인

  3. 파이프라인과 동시 사용 및 acc score 보기 편하게 편집

profile
새싹 데이터 분석가 https://github.com/KulangK

0개의 댓글