
머신러닝 모델은 단순히 데이터를 학습시켜 결과를 출력하는 것으로 끝나지 않습니다.
모델이 얼마나 제대로 학습하고 있는지, 또 학습 방향이 올바른지 지속적으로 점검하는 과정이 반드시 필요합니다.
이 핵심 단계가 바로 검증(Validation) 입니다.
이번 글에서는
- Training / Validation / Test의 차이
- 검증이 중요한 이유
- K-Fold 교차검증과 Stratified K-Fold
- 주요 분류 평가지표(Confusion Matrix, Precision, Recall, F1)
을 시리즈 3편 형태로 정리합니다.
1. 머신러닝에서 검증(Validation)은 왜 필요할까?
머신러닝 모델의 학습은
- 데이터를 넣는다
- 모델이 학습한다
- 결과를 낸다
이 단순한 과정이 아닙니다.
모델이 잘 학습하고 있는지, 혹은 잘못된 방향으로 가고 있는지 “중간 점검”이 필수적입니다.
이 점검 과정이 바로 **Validation(검증)**입니다.
검증은 모델의 학습 방향을 잡아주는 나침반(Compass) 역할을 합니다.
2. 학습(Training) – 검증(Validation) – 테스트(Test)의 관계
머신러닝 프로세스는 일반적으로 다음과 같은 구조를 가집니다.
Training → Validation → Test
1) 학습(Training)
- 모델이 패턴을 스스로 학습하는 단계
- Feature + Label(정답)을 사용
- 손실(Loss)을 최소화하는 방향으로 파라미터 업데이트
2) 검증(Validation)
- 학습에 사용하지 않는 데이터로 중간 성능을 평가
- “학습이 잘 되고 있는지”를 확인하는 모의고사
- 손실이 감소하는지? 어떤 지표가 개선되는지?
- 필요하다면 학습률, 모델 구조, 파라미터 등을 조정
3) 테스트(Test)
- 학습이 완전히 끝난 후 최종 성능을 측정
- 모델이 처음 보는 데이터를 사용
- 실제 서비스 배포 전 마지막 시험
정리하면,
- Training = 공부
- Validation = 모의고사
- Test = 최종 시험
3. 검증 데이터는 왜 따로 나눌까?
학습 데이터 전체를 모델이 모두 학습해버리면,
모델은 학습 데이터를 “암기”하려는 경향이 생깁니다.
이 경우 새로운 데이터에 대한 예측력이 떨어지는 현상이 발생하는데, 이것이 바로 **과적합(Overfitting)**입니다.
따라서,
전체 Training 데이터 = 학습용 + 검증용
으로 나눠서 모델이 실제 상황에서도 잘 작동하는지 미리 확인하는 것입니다.
4. 교차검증(Cross-Validation): 더 신뢰도 높은 검증 방법
단 한 번의 검증으로 모델을 평가하기에는 데이터의 편향이 존재할 수 있습니다.
이 문제를 해결하기 위해 사용하는 방법이 Cross-Validation입니다.
4-1. K-Fold 교차검증
K-Fold는 데이터를 K등분하여
- 1개 파트를 검증용
- 나머지를 학습용
으로 사용한 뒤,
이 과정을 K번 반복해 평균 성능을 계산합니다.
특징
- 일반적으로 K=5 또는 K=10
- 데이터가 적을 때 매우 유용
- 더 안정적이고 신뢰도 높은 평가 가능
4-2. Stratified K-Fold
K-Fold의 단점은 클래스 불균형(Class Imbalance) 입니다.
예를 들어 양성:음성 비율이 9:1이라면, 어떤 Fold에서는 음성 데이터가 거의 없을 수도 있습니다.
이를 해결하기 위해 사용하는 방식이 Stratified K-Fold입니다.
특징
- 각 Fold마다 클래스 비율을 동일하게 유지
- 불균형 데이터에서 필수적으로 사용
- 분류(Classification) 문제에서 가장 많이 쓰이는 교차검증 전략
5. 평가지표(Metrics): 모델의 성적표
Validation 단계에서는 모델 성능을 평가하는 지표가 필수입니다.
대표적인 분류 지표는 다음과 같습니다.
5-1. 혼동 행렬(Confusion Matrix)
모델의 예측 결과를 4가지 관점에서 분석합니다.
| 예측 / 실제 | Positive | Negative |
| Positive 예측 | TP | FP |
| Negative 예측 | FN | TN |
의미
- TP: 맞춘 양성
- FP: 잘못 예측한 양성(거짓 양성)
- FN: 놓친 양성(거짓 음성)
- TN: 맞춘 음성
5-2. 정확도(Accuracy)
Accuracy = (TP + TN) / 전체
그러나 불균형 데이터에서는 Accuracy만 보면 안 됩니다.
예를 들어, 95%가 음성, 5%가 양성인 데이터에서
모든 것을 음성으로 예측해도 정확도는 **95%**가 나옵니다.
즉, 진짜 성능을 제대로 반영하지 않는다는 의미입니다.
5-3. 정밀도(Precision)
Precision = TP / (TP + FP)
Positive라고 예측한 것 중에서 실제로 Positive인 비율입니다.
예:
스팸이 아닌 이메일을 스팸으로 잘못 분류(FP)를 줄이고 싶은 경우
→ Precision이 중요한 지표
5-4. 재현율(Recall, Sensitivity)
Recall = TP / (TP + FN)
실제 Positive 중에서 모델이 제대로 잡아낸 비율입니다.
예:
암 환자를 놓치지 않는 것이 중요한 의료 분야
→ Recall 최우선
5-5. F1 Score
F1 = 2 * (Precision * Recall) / (Precision + Recall)
Precision과 Recall의 조화 평균입니다.
두 지표 중 하나가 너무 낮으면 F1 Score도 낮아지므로
균형 잡힌 모델인지 판단할 수 있습니다.
6. 예시 문제로 이해 정리
1) 분류로 해결할 수 없는 문제
“정답이 없는 군집화 문제” → 비지도 학습
2) 같은 데이터 + 다른 모델을 결합하는 앙상블
정답: Voting
3) 리프 중심 분할 알고리즘
정답: LightGBM
4) K-Fold 사용 시 주의할 점
정답: 불균형 데이터에서는 클래스 비율이 왜곡되므로 Stratified K-Fold 필요
5) 실제 Positive 중 맞춘 Positive 비율
정답: Recall
6) Accuracy만 보면 위험한 이유
정답: 불균형 데이터에서 높은 Accuracy가 의미 없음
7) 지니 불순도 최대값
정답: 0.5 (50:50일 때 가장 혼합된 상태)
결론
머신러닝의 학습은
- Training(공부)
- Validation(모의고사)
- Test(최종 시험)
의 구조로 이루어지며, 이 중 Validation은 모델의 방향을 조정하고 성능을 안정화하는 핵심 과정입니다.
또한 교차검증(Cross-Validation)과 평가지표(Metrics)를 이해해야
단순히 “정확도 높은 모델”을 넘어
진짜 데이터를 잘 이해하고, 신뢰도 높은 예측 모델을 만들 수 있습니다.
다음 글에서는 실제 데이터를 활용하여
머신러닝 학습 파이프라인(전처리 → 검증 → 평가 → 튜닝)
을 실전 코드와 함께 다뤄보겠습니다.
'Programming' 카테고리의 다른 글
| 머신러닝 완전 입문 가이드 5편 : 회귀·분류 모델 하이퍼파라미터 완전 정리(Linear Regression부터 CatBoost까지) (0) | 2025.12.08 |
|---|---|
| 머신러닝 완전 입문 가이드 4편 : 파라미터(Parameter)와 하이퍼파라미터(Hyperparameter)의 개념과 차이 (1) | 2025.12.08 |
| 머신러닝 완전 입문 가이드 2편: 분류(Classification)와 결정트리·앙상블 알고리즘 완전 이해하기 (0) | 2025.12.08 |
| 머신러닝 완전 입문 가이드 1편: 머신러닝 개념과 학습 방식 이해하기 (0) | 2025.12.08 |
| SQL 고급: 윈도우 함수(Window Functions) & 서브쿼리(Subquery) 완전 정복 (1) | 2025.12.08 |