now is better than never

[쇼핑데이터를 활용한 머신러닝] 7. 머신러닝 기본개념 (2) 본문

Python/[코칭스터디 10기] Beyond AI Basic

[쇼핑데이터를 활용한 머신러닝] 7. 머신러닝 기본개념 (2)

김초송 2023. 5. 8. 19:11

2. Validation Strategy

1) Validation Strategy

- Test Data Set

  • 프로젝트 결과물과 직결되는 데이터셋
  • 최대한 전체 데이터셋을 대표할 수 있는 데이터가 좋음
  • 지속적으로 바꾸는 것은 프로젝트 진행에 좋지 못함
    -> 필요할 경우 validation data set 을 control

- Validation Data Set

  • 머신러닝 모델을 test data set 에 적용하기 전에 모델의 성능을 파악하기 위해서 선정
  • 이를 이용하여 Early Stop, 기타 Regularization 기법을 사용
  • Test data set 과 최대한 유사하게 구성하는 것이 좋음
  • Test data set 의 정보를 알 수 없을 경우 전체 데이터셋과 유사하게

- Train Data Set

  • 머신러닝 모델이 학습하는 데이터셋
  • Noise 데이터를 포함할지 안 할지 고민해야 함

2) Hold-out Validation

  • 하나의 validation data set 을 고정 -> train 1, validation 1

- Validation Hold

  • 고정하는 방법
  1. random sampling
  2. startified split
    • 특정값, label/data 의 카테고리와 feature 의 비율을 유지하며 split
    • 9:1, 8:2 가 대중적
    • sklearn 에서 stratified 옵션 사용하면 구현 가능

3) Cross Validation

  • train - validation 쌍을 여러 개 구성하는 방법
  • 각 쌍에 적합한 여러 개의 모델을 생성하여 test data set 에 모두 적용해서 score 계산
    -> K-Fold 방식
  1. K-Fold
    • random sampling
  2. stratified K-Fold
    • category feature 를 fold 별로 동일한 비율을 맞춰 split
    • 분류 문제에서는 class 별로 비율을 유지시켜야 모델의 성능이 좋음 -> 더 적합

  1. group K-Fold
    • group 들을 하나의 덩어리라고 생각하고 train-validation 을 뭉쳐있게 구성
    • 같은 그룹이 동일한 fold 에 들어가지 않도록 하는 방식
    • group 은 항상 fold 개수보다 커야함
  2. Time Series Split
    • 시계열 데이터의 경우 순차 시간을 고려해서 validation set 을 선정하는 방법
    • 미래 데이터로 과거 데이터를 예측하는 일이 없게하기 위해
    • 앞쪽 fold 일 수록 train 데이터가 적어질 수 있음

 

3. Reproducibility (재현성)

  • 실행할 때마다 똑같은 조건으로 샘플링해서 정확한 성능을 측정할 수 있게 함

1) Fix Seed

  • random 성을 제거하는 방법
  • random.seed(seed)

 

4. Machine Learning Workflow

  1. 데이터 추출 (가장 중요한 단계)
  2. 데이터 전처리 (feature scaling & feature selection)
  3. 머신러닝 모델링 및 학습
  4. 성능 평가