테스트 성능 평가
훈련 오류 vs 테스트 오류
- 훈련 오류 : 모델을 학습시킨 같은 데이터에 다시 적용해 계산한 오류
- 테스트 오류 : 학습에 쓰지 않은 새 관측치에 대해 모델을 적용했을 때의 평균 예측오류
- 보통 훈련 오류는 테스트 오류와 다르며, 특히 훈련 오류는 테스트 오류를 과소평가하는 경우가 많음
- 파란색 선 : 훈련 오류
- 빨간색 선 : 테스트 오류
- 훈련 오류는 계속 낮아지고, 테스트 오류는 U자형
- 목적 : 테스트 오류의 U자형의 바닥이 되도록 하는 적절한 모델 찾기
언더피팅과 오버피팅 사이에 중간값을 찾는 것이 가장 정확함
테스트 예측 오류 계산
- 이상적 케이스 : 충분히 큰 별도 테스트 데이터셋 -> 현실에선 구하기 어려움
- 현실에서는 테스트만을 위한 데이터를 갖기에 데이터 자체가 부족할 수 있음
대안 : 재표본화(resampling)를 통한 테스트 오류 추정
- 데이터를 나눠 여러 번 “훈련 -> 평가”를 반복해 테스트 오류를 가늠
- 시험용 문제가 따로 없다면? -> 기존 문제집의 문제들을 활용해 모의고사 보기
- 방법 : 검증셋(hold-out), K겹 교차검증 (K-fold Cross-Validation)
- 장점 : 별도의 테스트 데이터 없이 데이터를 더 효율적으로 사용하여 일반화 오차 추정
검증셋(Validation Set) 접근
검증셋(Validation Set) 방법
- 가용 샘플들을 무작위로 훈련셋과 검증셋(hold-out)으로 분할
- 문제집의 문제들을 모의고사용과 학습용으로 나누고 모의고사는 딱 1번만 보기
- 훈련셋으로 모델 적합, 검증셋으로 예측 후 검증 오류를 계산
- 검증 오류는 보통 정량 반응은 MSE, 범주 반응은 오분류율(또는 F1-score)을 측정한다.
검증셋 절차
검증 절차
- 데이터 순서 무작위 셔플링 후 두 부분으로 분할 : 왼쪽(파랑) = 훈련셋, 오른쪽(주황) = 검증셋
- 학습은 훈련셋에서, 성능평가는 검증셋에서 수행
검증셋 접근의 한계
- 어떤 표본이 훈련/검증에 들어가느냐에 따라 검증 기반 테스트 오류 추정치가 매우 가변적
- 검증 접근에서는 훈련셋(=전체의 일부)만으로 모델을 적합하므로 전체 데이터로 학습했을 때보다 성능이 낮게 추정(즉, 테스트 오류를 과대 추정)될 수 있음
K-겹 교차검증 (K-fold Cross-Validation)
- 테스트 오류 추정의 표준적 접근
- 문제집을 5등분 해서 서로 다른 모의고사를 5번 보는 것
- 추정치는 모델 선택과 최종 모델의 테스트 오류 규모 파악에 활용
- 데이터 전체를 크기 동일한 K개 폴드로 무작위 분할
- 폴드 를 검증에 사용하고, 나머지 개를 훈련에 사용
- 에 대해 반복한 후, 평균 오류로 테스트 오류를 추정
K-겹 교차검증 단계
- 데이터를 먼저 셔플링한 뒤, 총 개의 데이터를 겹치지 않는 K개 그룹으로 분할
- 각 그룹이 번갈아 검증셋(주황), 나머지는 훈련셋(파랑)
- K개의 MSE를 평균해 테스트 오류를 추정
K-겹 교차검증 오류 계산
- 폴드 집합 , 각 폴드 크기
- K = n이면 Leave-One-Out 교차검증(LOOCV)
- 100개 문제(n)로 100개의 서로 다른 모의고사(K)를 만드는 것
- Leave-One-Out 교차 검증에서 검증셋 크기 = 1
Leave-One-Out 교차검증
- 훈련셋(파랑) : 관측치 하나만 제외한 나머지 전부
- 검증셋(주황) : 제외한 1개 관측치
- 이 과정을 n번 반복해 나온 n개의 MSE 평균으로 테스트 오류를 추정
Leave-One-Out 교차검증 vs 10-겹 교차검증
- 자동차 데이터에서 LOOCV와 10-겹 CV 결과 비교(다항 차수에 따른 MSE 곡선)
- 99문제 학습 후 1문제로 평가하기 100번 반복 vs 90문제 학습 후 10문제로 평가하기 10번 반복
- 두 방법의 경향과 최적 차수가 비슷
- LOOCV는 모든 데이터를 검증에 사용하지만 연산량이 많아서 학습 시간이 오래 걸림
- LOOCV가 10-겹 CV와 비교해 큰 성능 향상이 없으므로, 적절한 K를 선택하여 K-겹 교차 검증을 사용하는게 좋음
시뮬레이션 : 참/추정 테스트 MSE
- 파랑 : 참(test) MSE, 검은 점선 : LOOCV 추정, 주황 : 10-겹 CV 추정
- 10-겹 CV 추정 : 테스트 성능에 추정의 좋은 대안