✅ 1. 교차 검증이란? 왜 필요한가?
📌 검증(validation)의 의미
- 검증 데이터는 모델이 얼마나 잘 학습되었는지 평가하는 데 사용됩니다.
- 모의고사와 비슷한 역할: 학습이 잘되었는지 확인하는 중간 테스트
하지만 모의고사가 너무 쉬우면?
→ 진짜 시험(실제 데이터)에선 실패할 수 있음
→ 머신러닝에서는 우연히 쉬운 검증 데이터가 성능을 왜곡할 수 있음
📌 교차 검증(Cross Validation)의 등장 배경
- 검증 데이터를 한 번만 고르면:
- 편향된 결과 발생 가능 (운 좋으면 잘 나올 수도 있음)
- 데이터가 적을 때, 검증용 데이터로 떼어내는 것이 아깝기도 함
- → 해결책: 여러 조합으로 나눠가며 검증
- 모델의 일반화 성능을 공정하고 정밀하게 평가할 수 있음
✅ 2. 교차 검증의 작동 방식
📌 핵심 개념
- 데이터를 여러 개의 조각(Fold)으로 나눈 뒤,
- 각 조각을 한 번씩 검증용으로 사용하고 나머지로 학습
- 결과를 평균해서 모델의 전체 성능을 평가
예시: 5-Fold CV
전체 데이터 → 5개 조각
1회차: [학습: 2+3+4+5, 검증: 1]
2회차: [학습: 1+3+4+5, 검증: 2]
...
5회차: [학습: 1+2+3+4, 검증: 5]
→ 전체 평균 성능 계산
✅ 3. 다양한 교차 검증 방법
📌 1) K-Fold Cross Validation
항목 설명
정의 | 데이터를 K개로 나눠 K번 검증 |
장점 | 모든 데이터가 학습+검증에 사용됨 |
활용 | 데이터가 충분한 경우 가장 기본적인 CV 방식 |
📌 2) Stratified K-Fold CV (계층적 교차 검증)
항목 설명
정의 | K-Fold와 유사하나, 각 Fold에 클래스 비율을 유지 |
활용 | 클래스 불균형이 있는 분류 문제에서 유용 |
예시 | 양성 90%, 음성 10% → 각 Fold도 이 비율 유지 |
from sklearn.model_selection import StratifiedKFold
📌 3) LOOCV (Leave-One-Out Cross Validation)
항목 설명
정의 | Fold의 개수를 데이터 수만큼 설정 (하나 빼고 다 학습) |
특징 | 정확도 매우 높음 (모든 데이터로 학습함) |
단점 | 데이터가 많아질수록 연산량 급증 |
활용 | 작은 데이터셋에 적합 |
✅ 4. 실습 예시: 선형 분류 모델 + 교차검증
- 사용 모델: 로지스틱 회귀 (Logistic Regression)
- 비교할 항목:
- 일반 K-Fold CV
- Stratified CV
- LOOCV
✅ 정리 표: 교차 검증 요약
방법 특징 장점 단점 추천 상황
K-Fold | K개의 Fold로 나눔 | 일반적, 효율적 | 클래스 불균형에 민감 | 전반적인 CV 필요 시 |
Stratified K-Fold | 클래스 비율 유지 | 불균형 대응 | 구현 복잡성 ↑ | 분류 문제 |
LOOCV | 1개 빼고 학습 반복 | 정확도 ↑ | 연산량 ↑↑ | 데이터 적을 때 |
'데이터분석데브코스 8 > 이론' 카테고리의 다른 글
EDA란? (0) | 2025.05.29 |
---|---|
8 - 24. 성능 평가 metric (0) | 2025.05.29 |
8 - 21. 이미지 & 텍스트 처리 (2) | 2025.05.29 |
8 - 20. 딥러닝 개요 (1) | 2025.05.29 |
8 - 19. Isolation Forest 실습: 신용카드 사기 탐지 (0) | 2025.05.29 |