본문 바로가기
데이터분석데브코스 8/이론

8 - 23. 교차 검증(Cross Validation)

by DataJ 2025. 5. 29.

✅ 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