Today I Learned (TIL)/Python

[TIL] 머신러닝의 심화 - 데이터분석 프로세스(3)

신짜린 2024. 8. 18. 10:14

4. 데이터 분리

- 과적합

 데이터를 너무 과도하게 학습한 나머리 해당 문제만 잘 맞추고 새로운 데이터를 제대로 예측 혹은 분류하지 못하는 형상을 말한다. 과적합은 모델의 복잡도, 데이터 양, 학습 반복, 데이터 불균형 등과 같은 원인이 있을 수 있다.

 예측 혹은 분류를 위해 모형의 복잡도를 설정하는데 모형이 지나치게 복잡하면 과대 적합, 지나치게 단순하면 과소 적합이 될 수 있다.

 

- 과적합 해결: 테스트 데이터의 분리

 데이터를 모델을 학습하기 위한 학습 데이터와 평가하기 위한 테스트 데이터로 데이터를 분리한다.

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

 

5. 교차 검증과 GridSearch

- 교차 검증 (Cross Validation)

 데이터 셋을 여러 개의 하위 집합으로 나누어 돌아가면서 검증 데이터로 사용하는 방법을 말한다.

 교차 검증으로 K-Fold Validation이 있다. Train Data를 K개의 하위 집합으로 나누어 모델을 학습시키고 모델을 최적화 하는 방법이다. 데이터가 부족할 경우 유용하다. 분할 수는 Split 1: 학습용(Fold 2~5), 검증용(Fold1) / Split 2: 학습용(Fold1, 3~5), 검증용(Fold2) / Split 5까지 반복 후 최종 평가한다.

함수 & 패키지 설명
skelarn.model_selection.KFold K-Fold Validation
sklearn.model_selection.StrifiedKFold 불균형한 레이블(Y)를 가지고 있을 때 사용

 

- 하이퍼 파라미터 자동적용: GridSearch

 하이퍼 파라미터란 모델을 구성하는 입력 값 중 사람이 임의적으로 바꿀 수 있는 입력 값을 말한다. 다양한 값을 넣고 실험할 수 있기 때문에 이를 자동화해주는 Grid Search를 적용할 수 있다.

 

6. 전체 데이터 프로세스