머신러닝 | 데이터 분리 | 데이터 훈련 시 과대적합을 피하기 위한 방법 | 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

    댓글