머신러닝 | 데이터 분리 | 데이터 훈련 시 과대적합을 피하기 위한 방법 | X_trian, X_test, y_train, y_test

728x90

 

1. 과대적합이란?

 

▶ 과대적합

: 한 데이터를 과도하게 학습하는 바람에 그 데이터 내의 예측 및 분류 문제 잘 맞추고,

새로운 데이터를 가져오면 모델이 제대로 예측 또는 분류하지 못하는 현상을 말함

회귀, 분류의 과대적합 예시

  • 예측 또는 분류를 위해 모형 복잡도를 설정함
    • 모형이 지나치게 복잡하면 → 과대 적합이 될 수 있음
    • 모형이 지나치게 단순하면 → 과소 적합이 될 수 있음

 

▶ 과대적합이 되는 이유(원인)

  • 모델의 복잡도가 높은 경우
  • 데이터의 양이 불충분한 경우
  • 학습 반복이 많은 경우 (딥러닝) 
  • 데이터 비율이 불균형한 경우 (ex. A : B가 95 : 5인 경우)

2. 과대적합 해결방법

 

2-1) train / test 데이터로 나누기

 

▶ 테스트 데이터의 분리

 

▶ train / test 데이터 분리

  • 학습 데이터 (Train Data) : 모델을 학습(fit) 하기 위한 데이터
  • 테스트 데이터 (Test Data) : 모델을 평가하기 위한 데이터

▶ 사용 함수

  • sklearn.model_selection.train_test_split
  • 파라미터
    • train_size : 학습 데이터 세트 크기
    • test_size : 테스트 데이터 세트 크기
    • shuffle : 데이터 분리 시 섞기
    • random_state : 호출할 때마다 동일한 학습 / 테스트 데이터를 생성하기 위한 난수 값
                                 데이터 분리를 할 때마다 동일한 데이터 세트로 분리하기 위해 숫자를 고정시켜야 함
  • 반환 값 (순서 중요!)
    • X_train, X_test, y_train, y_test

2-2) 교차 검증과 GridSearch

 

▶ 교차 검증이 필요한 이유

: 앞서 살펴본 train / test 데이터를 분리하는 방법에서도 테스트 데이터가 고정되어 있기 때문 과대적합에 취약할 수 있음

: 이를 방지하고자 교차검증을 사용함

 

▶ 교차 검증 (Cross Validation)

: 데이터셋을 여러 하위 집합으로 나누어놓고, 돌아가면서 검증 데이터로 사용하는 방법

  •  K-Fold Validation
    : Train Data를 K개의 하위 집합으로 나누어 모델을 학습시키고, 모델을 최적화 하는 방법

  • K는 분할 개수
    • Split 1 : 학습용(Fold 2~5), 검증용(Fold1)
    • Split 2 : 학습용(Fold 1, 3~5), 검증용(Fold2)
    • Split 3 : 학습용(Fold 1,2,4,5), 검증용(Fold3)
    • Split 4 : 학습용(Fold 1~3,5), 검증용(Fold4)
    • Split 5 : 학습용(Fold 1~4), 검증용(Fold5)
  • 사용 함수
    • skelarn.model_selection.KFold
    • sklearn.model_selection.StrifiedKFold (불균형한 레이블(y)를 가지고 있을 때 사용)
  • 특징
    • 데이터가 부족할 경우 유용 (반복 학습)

 

▶ GridSearchCV _ 하이퍼 파라미터 자동 적용하기

  • 하이퍼 파라미터 (Hyper Parameter)란,
    모델을 구성하는 입력 값 중 사람이 임의적으로 바꿀 수 있는 입력값을 말함
  • 하이퍼 파라미터를 바꿔가며 실험을 해볼 수 있음
  • 이런 과정을 자동화 해주는 것이 Grid Search 임 

 

* 파라미터와 하이퍼파라미터

[참고 게시글]

https://mozenworld.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%AA%A8%EB%8D%B8%EC%9D%98-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0%EC%99%80-%ED%95%98%EC%9D%B4%ED%8D%BC%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0

 

머신러닝 모델의 파라미터와 하이퍼파라미터

머신러닝 모델이 성공적으로 학습하고 예측을 수행하려면 여러 요소들이 결합되어야 합니다. 그중에서도 '파라미터(parameter)'와 '하이퍼파라미터(hyper-parameter)'는 모델의 성능을 결정하는 주요

mozenworld.tistory.com

728x90

댓글