▶ 과적합은 머신러닝의 적
- 과대적합(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를 적용해
볼 수 있다.
▶ 데이터 분석 프로세스 정리
'데이터분석 study > ML_ 심화' 카테고리의 다른 글
TIL_24.08.29_비지도학습 (0) | 2024.08.29 |
---|---|
TIL_24.08.28_회귀, 분류 모델링 심화 (0) | 2024.08.28 |
TIL_24.08.26_데이터 전처리(encoding, scaling) (0) | 2024.08.26 |
TIL_24.08.22_데이터 전처리(이상치, 결측치) (0) | 2024.08.22 |
TIL_24.08.20_ 회귀 알고리즘 복습 (0) | 2024.08.20 |