학습 자료

교차 검증이란?

교차 검증은 데이터셋을 여러 부분(폴드)으로 나누고 다양한 조합으로 학습/평가를 수행하여 모델 성능을 추정하는 기법입니다.

예를 들어, k-폴드 교차 검증은 다음과 같이 진행합니다.

  1. 데이터를 k개의 폴드로 나눕니다.
  2. 각 폴드에 대해:
    • k-1개의 폴드로 모델을 학습합니다.
    • 남은 1개의 폴드로 모델을 평가합니다.
  3. 각 반복의 결과를 평균 내어 더 신뢰할 수 있는 성능 추정치를 얻습니다.

흔한 교차 검증 종류

  • K-폴드 교차 검증: 가장 일반적이며 데이터를 k개의 동일한 크기의 폴드로 나눕니다.
  • 층화 K-폴드: 각 폴드에서 클래스 비율을 유지합니다(분류 문제에서 중요).
  • LOO(Leave-One-Out): 각 관측치를 하나씩 테스트로 사용합니다.
  • ShuffleSplit: 복원 추출로 임의 분할을 수행합니다.

예시: 교차 검증으로 모델 비교하기

다음 예시는 교차 검증으로 두 모델을 비교하고 평균 정확도가 가장 높은 모델을 선택하는 방법을 보여줍니다.

교차 검증 예제
from sklearn.datasets import load_iris from sklearn.model_selection import cross_val_score from sklearn.linear_model import LogisticRegression from sklearn.neighbors import KNeighborsClassifier # 데이터 불러오기 iris = load_iris() X, y = iris.data, iris.target # 모델 정의 log_reg = LogisticRegression(max_iter=200) knn = KNeighborsClassifier(n_neighbors=5) # 교차 검증 log_scores = cross_val_score(log_reg, X, y, cv=5) knn_scores = cross_val_score(knn, X, y, cv=5) print(f"로지스틱 회귀 평균 정확도: {log_scores.mean():.3f}") print(f"KNN 평균 정확도: {knn_scores.mean():.3f}")

이 예제는 5-폴드 교차 검증을 사용해 두 모델을 비교하고, 평균 정확도가 더 높은 모델을 선택합니다.


핵심 정리

  • 모델 선택은 정확도와 효율성 모두에서 가장 적합한 모델을 고르는 과정입니다.
  • 교차 검증은 실제 환경에서의 성능을 더 견고하게 추정하게 해줍니다.
  • 공정한 비교를 위해 모델을 비교할 때는 항상 동일한 교차 검증 전략을 사용하세요.
Quiz
0 / 1

모델 선택에서 교차 검증을 사용하는 주된 목적은 무엇인가요?

교차 검증은 데이터셋을 여러 하위 집합으로 분할하여 모델의 성능을 하는 데 도움이 됩니다.
훈련
테스트
평가
단순화

학습 자료

AI 튜터

디자인

업로드

수업 노트

즐겨찾기

도움말