교차 검증이란?
교차 검증
은 데이터셋을 여러 부분(폴드)으로 나누고 다양한 조합으로 학습/평가를 수행하여 모델 성능을 추정하는 기법입니다.
예를 들어, k-폴드 교차 검증
은 다음과 같이 진행합니다.
- 데이터를 k개의 폴드로 나눕니다.
- 각 폴드에 대해:
- k-1개의 폴드로 모델을 학습합니다.
- 남은 1개의 폴드로 모델을 평가합니다.
- 각 반복의 결과를 평균 내어 더 신뢰할 수 있는 성능 추정치를 얻습니다.
흔한 교차 검증 종류
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 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말