2024. 2. 2. 16:13ㆍTIL
교차 검증
검증이란 모델의 학습이 잘 진행되었는지(일반화 능력)를 판단하는 평가 과정이다. 학습이 잘 되고 있는지 혹은 과적합이 진행되는지를 판단하는 모델 학습의 최종 의사 결정 과정에서 사용되는 중요학 역할이다. 쉬운 데이터로의 편향과 전체적인 데이터 양의 부족한 문제를 회피 혹은 감수하면서도 검증의 원래 의미를 살리는 평가를 진행하는 방법을 교차 검증(Cross Validation)이라 한다. 교차 검증은 전체 데이터를 여러 개의 하위 데이터로 나누고 이 하위 세트들의 조합은 서로 다른 방법으로 훈련과 검증에 사용해 모델의 일반화 능력을 충분히 측정하는 것을 의미한다. 교차 검증은 시간 복잡도 측면을 제외하고 일반적인 랜덤 검증 데이터 활용 검증 방법보다 좋은 방법이다.
학습 데이터와 검증 데이터를 구성하는 방법에 따라 여러 방법이 존재한다.
- K-Fold CV: 전체 데이터 세트를 총 K개의 덩어리(폴드, Fold)로 나누고, 각 덩어리(폴드)를 순차적으로 검증 데이터로 사용하는 방법
- 데이터 세트를 K개의 폴드로 나눔 → K 개의 조합 생성
- 하나의 조합 당 하나의 폴드만 Validation data로 사용, 나머지 K-1개의 폴드를 Train data로 사용
- 총 K번의 학습 및 평가 과정이 반복
- 모든 데이터가 학습 및 평가로 사용됨 → 데이터 활용의 극대화, 과적합 방지, 논리적인 일반화 평가 진행
- 계층적 교차 검증 (Stratified Cross-Validation): K-Fold CV와 유사하지만, 각 폴드에서 클래스의 비율을 원본 데이터셋의 클래스 비율과 유사하게 유지
- 클래스 별로 데이터를 분할
- 각 클래스 데이터를 K 개의 폴드로 나눔
- 각 클래스에 존재하는 K 개의 폴드를 하나씩 조합 → K 개의 조합 생성
- 이후 과정은 K-Fold CV 와 동일
- K-Fold의 장점과 더불어 클래스 사이의 불균형이 있는 경우의 편향까지 고려
- LOOCV (Leave-One-Out Cross Validation): 한 번에 하나의 데이터 포인트만을 검증 데이터로 사용
- 극단적인 K-Fold CV의 경우로 전체 데이터 수만큼의 K를 활용
- 매우 정확한 검증 방식
- 하지만 데이터의 크기가 크다면 매우 많은 시간이 소요
- 작은 데이터셋에 유용
성능 평가 메트릭
성능 평가는 머신 러닝 모델의 성능을 객관적으로 측정하고 비교하는 과정에서 사용하고 이를 통해 모델의 강점과 약점을 파악한다. 성능 평가에 사용되는 지표를 metric이라고 한다. Metric에는 다양한 종류가 있으며 각각의 지표가 제공하는 정보가 달라 목적에 맞는 올바른 metric을 선택해야 한다.
다음과 같은 분류 문제 성능 Metric이 있다.
- Confusion Matrix
- 분류 문제에서 모델의 성능을 이해하고 해석하기 위한 중요한 도구
- 실제 레이블과 예측 레이블을 비교해 모델의 성능을 시각적으로 표현한 행렬
- 4가지 요소로 구성 - 진짜 양성(True Positive, TP), 거짓 양성(False Negative, FN), 진짜 음성(True Negative, TN), 거짓 음성 (False Negative, FN)
- Accuracy = (TN+TP) / (TN+FP+FN+TP)
- Precision = TP / (FP+TP)
- Recall = TP / (FN+TP)
- ROC(Receiver Operating Characteristic) curve
- 이진 분류 문제에서 널리 사용되는 모델 성능 측정 도구
- 양성(positive)과 음성(negative)를 나누는 임계값의 변화에 따른 성능을 시각화 한 그래프
- 성능은 아래의 두 파라미터를 사용
- x축 : 거짓 양성률 (False Positive Rate, FPR) - 전체 음성 중에서 실제로는 음성인데 양성이라고 잘못 찾은 비율 = FP / (TN+FP)
- y축 : 진짜 양성률 (True Positive Rate, TPR) = TP / (FN+TP) = Recall
- 머신러닝 모델이 양성을 최대한 많이, 잘 찾아내면서 잡음에 의한 거짓 탐지를 최소화하는지를 바탕으로 적절한 임계치를 찾는 도구
- AUC(Area Under the Curve) 점수
- 음성과 양성을 잘 나누지 못할수록 ROC 커브가 y = x 그래프에 수렴한다.
- 좋은 분류기인지 아닌지에 따라 ROC 커브의 모양이 바뀌고 그것을 수치로 나타내려면 ROC 커브의 아래 면적으로 표시할 수 있다. (최대 : 1 최소 : 0.5)
- AUC는 분류기의 전반적인 성능을 알 수 있는 척도로 ROC 커브의 아랫 면적을 의미한다.
회귀 문제 성능 Metric으로 R^2이 있다. R^2은 회귀 모델의 성능을 평가하는 통계적 지표 결정 계수(Coefficient of Determination)라고도 한다. 모델이 데이터의 변동성을 얼마나 잘 설명하는지를 나타낸다.

- SS_res: 모델 예측 값과 실제 값 사이의 제곱 합
- SS_tot: 실제 값들의 평균과 실제 값 사이의 차이 제곱 합
- 실제 데이터 내의 총 변동량으로 모델이 설명해야하는 전체 변동량의 양
- R^2 = 1: 모델이 데이터의 변동성을 완벽하게 설명함 → 모든 데이터 포인트가 회귀선에 정확히 놓여 있음
- R^2 = 0: 변동성을 설명하지 못함 → 단순히 모델의 평균값을 예측
- 0 < R^2 < 1: 일부 변동성을 설명, R^2이 클수록 설명력이 높다고 볼 수 있음
- 더 많은 변수를 추가하면 모델이 비대해지고 R^2값은 자동으로 증가하나 이때 과적합 상태를 주의해야 함
'TIL' 카테고리의 다른 글
| 데이터 EDA와 머신러닝 소개 (2) | 2024.02.06 |
|---|---|
| Kaggle 소개 (0) | 2024.02.05 |
| 딥러닝 (0) | 2024.02.02 |
| 이상탐지 (0) | 2024.02.01 |
| K-means Clustering (0) | 2024.02.01 |