⊢ DeepLearning

모델평가와 검증

최 수빈 2025. 3. 22. 23:06

 

교차검증 (Cross-Validation)

 

데이터를 반복적으로 나누어 모델의 일반화 성능을 평가하는 기법

과적합을 방지하고 새로운 데이터에 대한 예측 능력을 검증 가능

 

  • 과적합 방지: 모델이 특정 데이터셋에 의존하는 것을 막음
  • 일반화 성능 측정: 새 데이터에 대한 예측 능력 평가
  • 데이터 효율성: 적은 데이터로도 학습과 평가가 가능

*과적합(Overfitting): 학습 데이터에는 성능이 좋지만, 새로운 데이터에는 성능이 낮은 경우

 

 

K-Fold 교차검증

  1. 전체 데이터를 K개의 폴드(fold)로 나눔
  2. 각 Fold가 한번씩 검증용으로 사용되고 나머지는 학습용으로 사용
  3. 총 K번 학습 및 평가를 수행 후, 그 평균을 최종 성능으로 평가

 

K-Fold 교차검증의 평균 정확도

 

𝔄 = (A₁ + A₂ + … + Aₖ) / K

 

𝔄: i번째 Fold의 정확도 (Accuracy)

𝔄: 전체 평균 정확도

K: Fold의 개수

 

 

K=5일 경우

Fold 학습 데이터 검증 데이터
1 Fold2~Fold5 Fold1
2 Fold1, Fold3~Fold5 Fold2
3 Fold1, Fold2, Fold4, Fold5 Fold3
4 Fold1~Fold3, Fold5 Fold4
5 Fold1~Fold4 Fold5

 

 

Scikit-learn 사용 예시코드

from sklearn.model_selection import KFold
from sklearn.metrics import accuracy_score

kf = KFold(n_splits=5)
accuracies = []

for train_idx, val_idx in kf.split(X):
    X_train, X_val = X[train_idx], X[val_idx]
    y_train, y_val = y[train_idx], y[val_idx]

    model.fit(X_train, y_train)
    preds = model.predict(X_val)
    acc = accuracy_score(y_val, preds)
    accuracies.append(acc)

mean_accuracy = sum(accuracies) / len(accuracies)

 

 

 

 

'⊢ DeepLearning' 카테고리의 다른 글

PyTorch 문법 정리  (0) 2025.03.22
하이퍼파라미터 튜닝  (0) 2025.03.22
과적합(Overfitting) 방지 기법  (0) 2025.03.22
전이학습(Transfer Learning)  (0) 2025.03.22
생성형 모델(Generative Models)  (0) 2025.03.22