하이퍼파라미터 튜닝과 성능평가

교재 11장. 모델을 공정하게 평가(교차검증)하고, 올바른 지표(정밀도·재현율·F1)로 측정하며, 최적 군집 수를 찾는 법.


1. K-겹 교차검증 (K-Fold Cross Validation)

테스트 셋을 한 번만 떼면 운(우연한 분할) 에 결과가 흔들립니다. K-겹 교차검증은 데이터를 K개 조각으로 나눠, 한 조각씩 돌아가며 검증에 쓰고 나머지로 학습 → K번 평가의 평균을 냅니다.

PYTHON
from sklearn.model_selection import cross_val_score
 
scores = cross_val_score(model, X, y, cv=5)   # 5-겹
print(scores.mean(), scores.std())
  • 모든 데이터가 한 번씩 검증에 참여 → 안정적이고 편향 적은 추정
  • K 가 크면 정확하지만 계산 비용↑ (보통 5 또는 10)

2. 데이터 편향과 데이터 증강

2.1 편향 문제

한 클래스가 압도적으로 많으면(불균형), 모델이 다수 클래스만 찍어도 정확도가 높게 나옵니다 → 정확도의 함정.

2.2 데이터 증강 (augmentation)

부족한 클래스의 데이터를 변형·합성해 늘립니다(이미지 회전·반전, 오버샘플링 등). 균형 잡힌 학습을 유도.


3. 성능 평가 지표 — 정확도만으론 부족하다

암 환자 100명 중 1명. "전부 정상"이라 찍어도 정확도 99%. 하지만 정작 환자는 다 놓침. 그래서 혼동 행렬 기반 지표가 필요합니다.

예측 양성예측 음성
실제 양성TP (참 양성)FN (놓침)
실제 음성FP (오경보)TN (참 음성)
  • 정밀도(Precision): 양성이라 한 것 중 진짜 양성 비율 → 오경보가 싫을 때 중시
  • 재현율(Recall): 실제 양성 중 잡아낸 비율 → 놓치면 안 될 때 중시
  • F1: 정밀도·재현율의 조화평균. 둘의 균형

혼동 행렬과 정밀도·재현율·F1

Ch.11
임계 0.50← 예측 음성예측 양성 →
실제 양성
실제 음성
30
TP (참 양성)
4
FP (거짓 양성·오경보)
10
FN (거짓 음성·놓침)
36
TN (참 음성)
0.50
정밀도 P
0.88
재현율 R
0.75
F1
0.81
정확도
0.82
임계값을 낮추면 양성 예측이 늘어 재현율↑ 정밀도↓ (놓침은 줄지만 오경보 증가), 높이면 반대가 됩니다. 둘은 트레이드오프 관계이고, F1 은 둘의 조화평균이라 균형 지점에서 최대가 됩니다. 암 진단처럼 놓치면 치명적인 문제는 재현율을, 스팸 분류처럼 오경보가 거슬리는 문제는 정밀도를 중시합니다.
PYTHON
from sklearn.metrics import classification_report, confusion_matrix
 
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))   # P·R·F1 한 번에

4. 가상(합성) 데이터 만들기

군집·분류 실험을 위해 인공 데이터를 생성:

PYTHON
from sklearn.datasets import make_blobs
 
X, y = make_blobs(n_samples=300, centers=4, cluster_std=0.8, random_state=0)
  • centers: 덩어리 개수, cluster_std: 퍼짐 정도

5. 최적의 군집 수 찾기

비지도 군집화는 정답 k 를 모릅니다. 두 가지 방법:

5.1 엘보우 방법 (Elbow)

k 를 늘리며 inertia(군집 내 분산 합) 를 그래프로. 꺾이는 팔꿈치 지점이 적절한 k.

PYTHON
inertias = [KMeans(n_clusters=k, n_init=10).fit(X).inertia_ for k in range(1, 10)]

5.2 실루엣 점수 (Silhouette)

각 점이 자기 군집에 얼마나 잘 속하고 다른 군집과 떨어졌는지 를 −1~1 로 측정. 클수록 좋은 군집.

PYTHON
from sklearn.metrics import silhouette_score
silhouette_score(X, labels)

📝 Checkpoint

Quiz

튜닝·성능평가 Checkpoint

Q 1 / 6

K-겹 교차검증을 쓰는 가장 큰 이유는?


🔗 이어서