확률과 통계

적합도, 교차검증, AIC, 상대엔트로피까지 — 모델 평가 핵심 개념 정리

memo5427 2025. 5. 12. 21:18

적합도(Fitness)와 예측 정확도(Accuracy)

적합도는 내가 가진 데이터를 모델에 적용했을 때 얼마나 잘 설명하는지를 의미한다.
로그 가능도, 잔차 제곱합, 맞춘 비율 등이 적합도를 나타내는 지표다.

 

반면, 예측 정확도는 내가 갖고 있지 않은 미지의 데이터(unseen data)에 대해 모델이 얼마나 잘 맞추는지를 뜻한다. 적합도와는 개념이 다르다.

 

과적합(Overfitting)과 독립 변수 선택

과적합은 적합도는 높지만, 정작 예측 정확도가 떨어지는 상황이다.
갖고 있는 데이터에 너무 집착해서 불필요하게 복잡한 모델을 만들 때 주로 발생한다.

 

예를 들어 신발 판매량을 예측하는데, 바퀴벌레 개체수나 지진 빈도 같은 쓸데없는 변수를 넣으면 엉뚱한 결론이 나올 수 있다.
이런 불필요한 독립 변수가 과적합을 일으킨다.
따라서 독립 변수를 적절하게 선택하는 것이 중요하다.

 

일반화 오차(generalization error)

일반화 오차는 미지의 데이터에 대한 예측 오차를 의미한다.

 

훈련 데이터는 모델 학습에 사용되는 데이터다. 적합도는 볼 수 있지만 일반화 오차를 알기 어렵다.

 

테스트 데이터는 훈련 데이터와는 다르게, 일반화 오차를 측정하기 위해 일부러 남겨둔 데이터다.

 

사실 둘 다 이미 갖고 있는 데이터지만, 일반화 오차를 추정하기 위해 테스트 데이터처럼 가상으로 구분해서 사용한다.

 

 

교차검증(Cross Validation, CV)

교차 검증(Cross Validation)은 데이터를 훈련용과 테스트용으로 여러 번 나눠서 예측 정확도를 평가하는 방법이다.

  • Leave-p-out CV는 데이터 중 p개를 테스트용으로, 나머지를 훈련용으로 써서 평가한다. 이를 여러 조합으로 반복하고 평균을 낸다.
  • K-fold CV는 데이터를 K개로 나눠서, 하나를 테스트용으로 쓰고 나머지(K-1개)로 학습한다. 이걸 K번 반복해서 정확도의 평균을 평가값으로 사용한다.

교차 검증을 통해 예측 정확도를 최대화하는 변수 조합을 선택할 수 있지만, 계산량이 많은 것이 단점이다.

 

AIC (Akaike's Information Criterion)

AIC는 다음과 같이 정의된다.

AIC = -2 × (최대 로그 가능도 - 추정된 파라미터의 수)

AIC가 작을수록 좋은 모델로 본다.
적합도가 높을수록 (로그 가능도↑) AIC는 작아지고, 반대로 복잡한 모델일수록 (파라미터 수↑) AIC는 커진다.

예를 들어보자. 엘리베이터 유무가 집값에 영향을 미치는지 확인하고 싶다.

  1. 집값 ~ 독립변수 없음
  2. 집값 ~ 엘리베이터 유무

두 모델을 만들고 AIC를 비교한다. 만약 모델 2의 AIC가 더 작다면, 엘리베이터 유무를 독립변수로 포함하는 것이 예측에 더 좋다고 판단할 수 있다.

AIC의 목적은 내가 가진 데이터로 미지의 데이터 예측력을 높이는 것이다.

 

상대 엔트로피(Relative Entropy)와 평균 로그 가능도

상대 엔트로피(Relative Entropy)는 실제 확률분포와 모델이 예측한 확률분포 사이의 차이를 측정하는 지표다.
쿨백-라이블러 발산(Kullback-Leibler Divergence)이라고도 한다.

 

Relative Entropy = ∫g(x){log ⁡g(x) − log⁡ f(x)}dx

 

여기서 는 실제 분포, 는 모델이 예측한 분포다.


우리가 조정할 수 있는 건 f(x) 뿐이다. 그래서 실제로는 ∫ −g(x) log ⁡f(x) dx 항을 최소화하는 걸 목표로 한다.

 

이 항을 평균 로그 가능도(average log-likelihood)라고 한다.

 

하지만 평균 로그 가능도는 계산이 어렵다. 그래서 보통 최대 로그 가능도(maximum likelihood)로 대체한다.


그렇지만 최대 로그 가능도는 편향되기 쉽기 때문에, 이를 보정하기 위해 파라미터 수를 고려한 AIC가 만들어진 것이다.