Cross Validation
교차 검증(Cross Validation)은 머신러닝에서 모델의 성능을 평가하는 방법 중 하나로, 주어진 데이터를 여러 번 나누어 모델을 학습하고 검증하는 방식입니다. 데이터를 여러 번 나누어 검증하기 때문에 모델의 일반화 성능을 더 정확하게 평가할 수 있는 장점이 있습니다.
K-Fold Cross Validation
가장 일반적인 방법인 K-폴드 교차 검증(K-Fold Cross Validation)을 예로 들면, 다음과 같은 과정으로 진행됩니다:
- 데이터 분할: 데이터를 K개의 폴드(fold)로 나눕니다.
- 학습 및 검증 반복: 각 폴드에 대해, K개의 폴드 중 하나의 폴드를 검증 세트로, 나머지 K-1개의 폴드를 학습 세트로 사용하여 모델을 학습하고 평가합니다.
- 평균 성능 계산: K번 반복 후 각 검증 세트에서 계산한 성능 지표를 평균하여 모델의 최종 성능을 평가합니다.
이러한 방식으로, 모델이 학습에 사용되지 않은 데이터로 검증됨으로써 **과적합(overfitting)**을 방지하고, 데이터의 특정 분할에 의존하지 않는 더 안정적인 성능 평가가 가능합니다.
Leave-One-Out Cross Validation (LOOCV)
- 데이터셋의 각 샘플을 한 번씩 테스트 세트로 사용하고, 나머지 샘플을 학습에 사용합니다.
- 즉, 데이터셋에 n개의 샘플이 있다면 n번의 학습과 검증을 수행하는 방식입니다.
- 장점: 데이터가 적을 때 사용할 수 있으며, 각 데이터 포인트가 모델 평가에 기여하기 때문에 평가 편향이 줄어듦.
- 단점: 샘플 수가 많아지면 매우 많은 반복 학습이 필요해 비용이 크게 증가.
Stratified K-Fold Cross Validation
- K-Fold 교차 검증의 한 형태로, 각 폴드에 데이터의 클래스 비율을 동일하게 유지하도록 데이터를 나눕니다.
- 예를 들어, 분류 문제에서 클래스가 불균형할 경우, 각 폴드에 클래스가 균등하게 분포되도록 나누는 방식입니다.
- 장점: 특히 분류 문제에서 클래스 불균형이 있는 경우 유리하며, 각 폴드가 데이터 분포를 잘 반영하도록 만듦.
Time Series Cross Validation (Sliding Window)
- 주로 시계열 데이터에 사용되며, 데이터의 시간 순서를 고려해 학습 및 검증 세트를 순차적으로 생성하는 방식입니다.
- 일반적으로 이전 데이터로 학습하고 그 다음의 구간을 검증에 사용합니다.
- 방법:
- Expanding Window: 학습 세트를 점차 확장해가며 이전 모든 데이터를 포함한 상태로 검증을 수행.
- Sliding Window: 고정된 크기의 학습 세트를 이동하면서 검증.
- 장점: 시계열 예측에서 시간 순서를 지키면서 모델을 평가 가능.
교차 검증을 통해 얻은 성능 지표는 모델이 새로운 데이터에 대해 얼마나 잘 일반화되는지를 추정하는 데 도움을 줍니다.
'Interview > ML' 카테고리의 다른 글
NVIDIA DGX (0) | 2024.11.11 |
---|---|
ML Interview - 딥러닝의 장점과 단점 (1) | 2024.11.11 |
ML Interview - 모델 추론 실시간 서빙 시스템 (0) | 2024.11.10 |
ML Interview - 추천 시스템의 고수준 설계 (0) | 2024.11.10 |
ML Interview - Normalization (0) | 2024.11.10 |