데이터분석 study/ML_ 심화

TIL_24.08.27_데이터 분리, 교차검증

justdata 2024. 8. 27. 19:27

과적합은 머신러닝의 적

   - 과대적합(Overfitting)

      : 데이터를 너무 과도하게 학습한 나버지 해당 문제만 잘 맞추고

        새로운 데이터를 제대로 예측 혹은 분류하지 못하는 현상

 

  - 과적합의 원인

    ○ 모델의 복잡도 

    ○ 데이터 양이 충분하지 않음

    ○ 학습 반복이 많음(딥러닝의 경우)

    ○ 데이터 불균형(정산환자 - 암환자의 비율이 95:5)

 

  - 과적합 해결(train(학습) 데이터, test(평가) 데이터 분리)

 

    ○ 학습데이터(Train Data) : 모델을 학습(fit)하기 위한 데이터

    ○ 테스트 데이터(Train Data) : 모델을 평가하기 위한 데이터

 

    ● 함수 및 파라미터 설명

        ○ sklearn.model_selection.train_test_split

 

        ○  파라미터

            - test_size : 테스트 데이터 세트 크기

            - train_size : 학습 데이터 세트 크기

            - shuffle : 데이터 분리 시 섞기

            - random_state : 호출할 때마다 동일한 학습/테스트 데이터를 생성하기 위한

                                        난수 값, 수행할 때 마다 동일한 데이터 세트로 분리하기 위해

                                        숫자를 고정 시켜야 함

 

        ○  반환값(순서 중요)

            - x_train, x_test, y_train, y_test

 

▶ 데이터 전체 프로세스 적용

 

    1. 데이터 로드 & 분리

        - train/test 데이터 분리

 

    2. 탐색적 데이터 분석(EDA)

       - 데이터 분포 확인 & 이상치 확인

 

    3. 데이터 전처리

        - 결측치 처리

        - 수치형 변수 : 스케일링 작업

        - 범주형 변수 : 인코딩 작업

 

    4. 모델 수립

    5. 평가

 

 

▶ 교차 검증과 GridSearch

    ● 교차 검증(Cross Validation)

       - 고정된 테스트 데이터가 존재하기 때문에 과적합에 취약하다는

          단점이 있다.

 

       - 교차 검증이란 데이터 셋을 여러 개의 하위 집합으로 나누어 돌아가면서

         검증 데이터로 사용하는 방법

 

    ● K-Fold Validation

       - 정의 : Train Data를 K개의 하위 집합으로 나누어 모델을 학습시키고

                   모델을 최적화 하는 방법(K는 분할의 개수)

 

       - Split 1 : 학습용(Fold 2~5), 검증용 (Fold1)

       - Split 2 : 학습용(Fold1, 3~5) , 검증용(Fold2)

       - Split 5까지 반복 후 최종 평가

 

      

          - 특징 : 데이터가 부족할 경우 유용(반복 학습)

          - 함수

            ○ sklearn.model_selection.KFold

            ○ sklearn.model_selection.StrifiedKFold : 불균형한 레이블(Y)를 가지고 있을 때 사용

    

        ● 하이퍼 파라미터 자동 적용하기  - GridSearchV

            - 하이퍼 파라미터(Hyper Parameter) : 모델을 구성하는 입력 값 중 사람이 임의적으로

               바꿀 수 있는 입력 값이 있다.

        

           - 다양한 값을 넣고 실험할 수 있기 때문에 이를 자동화해주는 Grid Search를 적용해 

             볼 수 있다. 

 

▶ 데이터 분석 프로세스 정리