스킬캠퍼스
27강 · 교차검증
강의

오늘 끝나면

교차검증

  • 교차검증의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 교차검증이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

k-fold — 적은 데이터로 일반화 성능을 정직하게 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

통계 · 27

교차
검증

한 번 자른 검증 점수는 어디를 잘랐냐는 운에 좌우됨.
데이터를 k조각으로 나눠 돌아가며 검증함.
k번 점수의 평균이 안정적인 성능 추정치임.

P.01통계 · 27

한 번 분할은 운에 좌우됨

데이터가 적을수록 한 번 잘라 만든 검증 점수는 못 믿음.

26강에서 데이터를 훈련·검증으로 한 번 나눴음.
근데 어느 20%를 검증으로 떼느냐에 따라 점수가 출렁임.
쉬운 표본이 검증으로 가면 점수가 높게, 어려운 표본이 가면 낮게 나옴.

즉 그 한 점수는 모델 실력 + 분할 운이 섞인 값임.
표본이 100개면 분할 운이 크게 흔들림 / 추정이 불안정함.

운을 줄이려면 한 번이 아니라 여러 번 갈라서 평균을 내야 함.
그 방법이 교차검증임.

같은 데이터, 어디를 자르냐에 따라 점수가 흔들림
같은 데이터 · 다른 한 번 분할
분할 A점수 91%
분할 B점수 78%
분할 C점수 84%
진한 칸이 검증 / 어디를 떼느냐에 78~91%로 출렁임
P.02통계 · 27

k-fold = k조각, 돌아가며 검증

데이터를 k개의 같은 크기 조각(fold)으로 나눔.

1라운드: 1번 조각을 검증으로, 나머지 k−1조각으로 훈련.
2라운드: 2번 조각을 검증으로, 나머지로 훈련.
… k라운드까지 검증 조각을 한 칸씩 옮김.

핵심은 모든 표본이 정확히 한 번씩 검증에 쓰인다는 점임.
버려지는 데이터 없이 전부 검증 한 번 · 훈련 k−1번 거침.

라운드마다 점수가 하나씩 나옴 / 점수 k개가 모임.
k=5면 5번, k=10이면 10번 훈련·평가함.

조각 하나씩 검증으로 / 나머지로 훈련 / k번 반복
5-fold · 검증 조각이 한 칸씩 옮겨감
R1
R2
R3
R4
R5
검증훈련

5조각 × 5라운드 = 모든 조각이 정확히 한 번 검증됨

4.8
P.03통계 · 27

k번 점수의 평균이 추정치

교차검증의 결과는 점수 하나가 아니라 점수 k개임.

이 k개 점수의 평균이 최종 성능 추정치임.
CV 점수 = (점수₁ + … + 점수ₖ) / k
한 번 분할의 점수보다 평균이 운에 덜 흔들림.

점수들의 표준편차도 같이 봄 / 편차가 크면 모델이 분할에 민감하다는 신호임.
오른쪽에서 직접 돌려 보셈.
k를 키우면 라운드가 늘고, 막대들의 평균선이 자리를 잡음.

끝까지 돌리면 라운드별 점수가 얼마나 흩어졌는지 보임.
그 흩어짐이 바로 한 번 분할이 떠안았던 운임.

k조각으로 나눠 라운드마다 점수가 모여 평균이 됨
k-fold 교차검증 · 직접 돌려봄
데이터 24개 → 5조각 / 라운드 0 / 5
검증훈련
라운드마다 검증 점수가 쌓임 · 굵은 선 = 평균
평균 성능 추정
%
라운드 간 편차(±)
%p

1번째 라운드 — 1번 조각을 검증으로, 나머지로 훈련 중임.

조각 수 kk = 5
28

k를 키우면 라운드가 늘어 추정이 안정됨 / 대신 훈련을 k번 해야 해 비용도 k배임.

P.04통계 · 27

안정적 추정의 대가 = 비용 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.
불균형 데이터에서 특히 추정이 더 안정됨 / 분류엔 기본으로 권장됨.
추정이 안정되는 만큼 훈련 횟수도 늘어남
안정성 ↑ = 훈련 횟수 ↑
한 번 분할훈련 1
5-fold훈련 5
10-fold훈련 10

k가 클수록 추정은 안정 / 연산은 그만큼 k배로 늘어남

P.05통계 · 27

정리 — 운을 평균으로 깎음

교차검증은 한 번 분할의 운을 여러 번 평균 내서 깎는 방법임.

k조각으로 나눠 돌아가며 검증·훈련을 k번 / 점수 k개의 평균이 추정치.
모든 표본이 한 번씩 검증에 쓰여 데이터를 알뜰히 씀.
대가는 훈련 k번 = 비용 k배.

다음 강은 다중회귀임.
입력 변수 하나가 아니라 여럿일 때 직선 대신 평면·초평면을 맞추는 회귀로 넘어감.

Q. 교차검증을 쓰는 이유는?정답은 한 번 분할의 운을 줄여 일반화 성능을 안정적으로 추정하기 위함임.
한 번만 자르면 어느 표본이 검증으로 가느냐에 점수가 좌우됨.
k조각으로 나눠 돌아가며 검증해 점수 k개를 평균 내면, 분할 운이 상쇄돼 추정이 안정됨.
대신 훈련을 k번 해야 하므로 비용은 k배임.
한 번 분할 vs k-fold
한 번 분할 vs k-fold
한 번 분할k-fold
분할 횟수한 번k번
검증 운그대로 떠안음평균으로 상쇄
데이터 활용검증분 떼어둠전부 한 번씩 검증
훈련 비용1배k배

3줄 요약

  1. 1k-fold — 적은 데이터로 일반화 성능을 정직하게
  2. 2교차검증은 분포 → 표본 → 검정 → 회귀 → 모델 선택 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

교차검증

k-fold — 적은 데이터로 일반화 성능을 정직하게

분포

데이터가 어떤 모양으로 퍼져 있는지 나타낸 것

표본

전체를 알기 위해 뽑아 본 일부 데이터