머신 러닝 모델의 평가

 현실의 어떠한 문제를 해결하기 위해서 어떠한 모델을 세웠으면 그 모델이 어느정도의 성능을 내고 있는지 평가할 필요가 있다. 따라서 보통 위와 같이 데이터를 훈련용, 검증용, 테스트용 이렇게 3가지로 분리하는 것이 일반적이다.

 

3가지로 분류하는 이유

1. 훈련데이터 = 문제지

2. 검증데이터 = 모의고사

3. 테스트데이터 = 실제시험

이렇게 비유할 수 있는데

 

검증용 데이터는 모델의 성능을 평가하기 위한 데이터가 아니라 성능을 조절하기 위해서 필요한 데이터이다.

과적합(Overfitting)을 판단하거나 하이퍼 파라미터의 값을 조정하기 위해서 필요하다.

 

#하이퍼파라미터(초매개변수)와 매개변수

하이퍼파라미터는 매개변수와 달리 값에 따라서 모델의 성능에 영향을 주는 매개변수를 말한다. 

반면 매개변수는 모델이 학습하는 과정에서 얻게되는 값이다.

 

 훈련용 데이터로 훈련을 모두 시킨 모델은 검증용 데이터를 사용하여 정확도를 검증하며 하이퍼파라미터를 튜닝(Tuning)한다. 이때 모델의 매개변수는 검증용 데이터로 정확도가 검증되는 과정에서 점차 검증용 데이터에 점점 맞추어져 가기 시작한다. (fitting된다는 말)

 

하이퍼파라미터 튜닝이 끝났다면 이제 검증용 데이터로 모델을 평가하는 것은 적합하지 않다. 튜닝하는 과정에서 일정 부분 fitting이 발생하여 최적화가 되어있는 상태이기 때문이다.

 

따라서 모델에 대한 평가는 모델이 아직까지 보지 못한 데이터로 하는 것이 가장 바람직하다. 따라서 테스트 데이터를 가지고 모델의 진짜 성능을 평가한다.

 

만약 이와 같이 3가지 데이터로 나눌만큼 데이터가 충분하지 못하다면 k-fold 교차검증이라는 방법을 사용하기도 한다.