오늘 끝나면
교차검증
- ✓교차검증의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 교차검증이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
k-fold — 적은 데이터로 일반화 성능을 정직하게 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
통계 · 27
교차
검증
한 번 자른 검증 점수는 어디를 잘랐냐는 운에 좌우된다.
데이터를 k조각으로 나눠 돌아가며 검증한다.
k번 점수의 평균이 안정적인 성능 추정치다.
한 번 분할은 운에 좌우된다
데이터가 적을수록 한 번 잘라 만든 검증 점수는 믿기 어렵다.
26강에서 데이터를 훈련과 검증으로 한 번 나눴다.
그런데 어느 20%를 검증으로 떼느냐에 따라 점수가 출렁인다.
쉬운 표본이 검증으로 가면 점수가 높게, 어려운 표본이 가면 낮게 나온다.
즉 그 한 점수는 모델 실력과 분할 운이 섞인 값이다.
표본이 100개면 분할 운이 크게 흔들려서 추정이 불안정하다.
운을 줄이려면 한 번이 아니라 여러 번 갈라서 평균을 내야 한다.
그 방법이 교차검증이다.
k-fold은 k조각으로 돌아가며 검증한다
데이터를 k개의 같은 크기 조각(fold)으로 나눈다.
1라운드에는 1번 조각을 검증으로 쓰고 나머지 k−1조각으로 훈련한다.
2라운드에는 2번 조각을 검증으로 쓰고 나머지로 훈련한다.
이렇게 k라운드까지 검증 조각을 한 칸씩 옮긴다.
핵심은 모든 표본이 정확히 한 번씩 검증에 쓰인다는 점이다.
버려지는 데이터 없이 전부 검증을 한 번 거치고 훈련을 k−1번 거친다.
라운드마다 점수가 하나씩 나와서 점수 k개가 모인다.
k=5면 5번, k=10이면 10번 훈련하고 평가한다.
5조각을 5라운드 돌리면 모든 조각이 정확히 한 번 검증된다
4.8k번 점수의 평균이 추정치
교차검증의 결과는 점수 하나가 아니라 점수 k개다.
이 k개 점수의 평균이 최종 성능 추정치다.
CV 점수 = (점수₁ + … + 점수ₖ) / k
한 번 분할의 점수보다 이 평균이 운에 덜 흔들린다.
점수들의 표준편차도 같이 본다. 편차가 크면 모델이 분할에 민감하다는 신호다.
k를 키우면 라운드가 늘고 막대들의 평균선이 자리를 잡는다.
라운드별 점수가 얼마나 흩어졌는지가 곧 한 번 분할이 떠안았던 운이다.
1번째 라운드, 1번 조각을 검증으로, 나머지로 훈련 중이다.
k를 키우면 라운드가 늘어 추정이 안정된다. 대신 훈련을 k번 해야 해 비용도 k배다.
안정적 추정의 대가는 비용 k배다
공짜는 아니다. k-fold은 모델을 k번 훈련한다.
한 번 분할은 훈련 1번, 5-fold은 훈련 5번, 10-fold은 훈련 10번이다.
그만큼 시간과 연산이 k배로 든다.
그래서 데이터와 모델 크기에 맞춰 k를 고른다.
보통 k=5 또는 k=10을 쓰는데, 안정성과 비용의 절충점이다.
데이터가 아주 적으면 k=N(LOOCV)까지 키우기도 하는데, 이때는 표본 하나만 검증으로 쓴다.
정리하면 k가 클수록 추정은 안정되지만 훈련 비용이 커진다.
k는 정확도가 아니라 추정의 안정성을 위해 돈을 더 쓰는 손잡이다.
층화 k-fold (펼치기)
분류 문제에서 조각마다 클래스 비율이 들쭉날쭉하면 점수가 더 흔들린다.그래서 각 조각의 클래스 비율을 원본과 같게 맞춰 나누는데, 이것이 층화(stratified) k-fold이다.
불균형 데이터에서 특히 추정이 더 안정되므로 분류에서는 기본으로 권장된다.
k가 클수록 추정은 안정되고 연산은 그만큼 k배로 늘어난다
정리하면 운을 평균으로 깎는다
교차검증은 한 번 분할의 운을 여러 번 평균 내서 깎는 방법이다.
k조각으로 나눠 돌아가며 검증과 훈련을 k번 하고, 점수 k개의 평균이 추정치가 된다.
모든 표본이 한 번씩 검증에 쓰이니 데이터를 알뜰히 쓴다.
대가는 훈련 k번, 곧 비용 k배다.
다음 강은 다중회귀다.
입력 변수가 하나가 아니라 여럿일 때 직선 대신 평면이나 초평면을 맞추는 회귀로 넘어간다.
Q. 교차검증을 쓰는 이유는?
정답은 한 번 분할의 운을 줄여 일반화 성능을 안정적으로 추정하기 위해서다.한 번만 자르면 어느 표본이 검증으로 가느냐에 점수가 좌우된다.
k조각으로 나눠 돌아가며 검증해 점수 k개를 평균 내면 분할 운이 상쇄돼 추정이 안정된다.
대신 훈련을 k번 해야 하므로 비용은 k배다.
| 한 번 분할 | k-fold | |
|---|---|---|
| 분할 횟수 | 한 번 | k번 |
| 검증 운 | 그대로 떠안는다 | 평균으로 상쇄한다 |
| 데이터 활용 | 검증분을 떼어 둔다 | 전부 한 번씩 검증한다 |
| 훈련 비용 | 1배 | k배 |