학습 및 평가 세트: 데이터 분할

이전 모듈에서는 데이터 세트를 다음과 같이 두 부분으로 나눈다는 개념을 소개했습니다.

  • 학습 세트 - 모델을 학습시키기 위한 데이터 세트의 일부분
  • 평가 세트 - 모델을 테스트하기 위한 데이터 세트의 일부분

데이터 세트 하나를 다음과 같이 분할하는 방법을 생각해 볼 수 있습니다.

두 가지로 분할된 데이터: 큰 학습 데이터 세트와 작은 테스트 데이터 세트

그림 1. 데이터 세트 하나를 학습 세트와 평가 세트로 분할

평가 세트는 다음 두 가지 조건을 만족해야 합니다.

  • 통계적으로 유의미한 결과를 도출할 만큼 커야 합니다.
  • 데이터 세트를 전체적으로 나타내야 합니다. 즉, 평가 세트가 학습 세트와 같은 특징을 가지도록 선별해야 합니다.

평가 세트가 위와 같은 두 가지 조건을 만족한다면 이제 새로운 데이터에도 일반화될 수 있는 모델을 만드는 것이 목표입니다. 평가 세트는 새 데이터를 모의 실험하는 역할을 합니다. 다음 그림을 예로 들어 보겠습니다. 여기에서 학습 데이터를 익힌 모델은 매우 단순합니다. 이 모델은 그다지 완벽하지 않으며 몇 가지 예측이 빗나갔습니다. 그러나 테스트 데이터에 대한 결과는 학습 데이터에 대한 결과에 비해 나쁘지 않습니다. 즉, 이 단순 모델은 학습 데이터에 과적합되지 않았습니다.

두 개의 모델: 하나는 학습 데이터, 다른 하나는 테스트 데이터로 실행 모델은 주황색 점과 파란색 점을 나누는 선으로서 매우 단순합니다. 학습 데이터의 손실이 테스트 데이터의 손실과 비슷합니다.

그림 2. 학습된 모델을 테스트 데이터로 검증

테스트 데이터로 학습하지 마세요. 평가 측정항목에서 이상할 정도로 좋은 결과가 나온다면 실수로 평가 세트로 학습했다는 증거일 수 있습니다. 예를 들어 정확도가 높다면 테스트 데이터가 학습 세트로 유출되었을 수 있습니다.

예를 들어 제목, 본문, 보낸 사람의 이메일 주소를 특성을 사용하여 스팸 메일을 가려내는 모델이 있다고 가정해 보겠습니다. 데이터를 80:20 비율로 학습 세트와 평가 세트로 배분했습니다. 학습 후에 모델은 학습 세트와 평가 세트 모두에서 99%의 정확성을 보입니다. 평가 세트에서는 정확성이 이보다 낮아야 하므로, 데이터를 다시 살펴본 결과 평가 세트의 예 중 다수가 학습 세트의 예와 중복되는 것으로 나타났습니다. 데이터를 분할하기 전에 입력 데이터베이스에서 동일한 스팸 메일의 중복 항목을 솎아내지 않았던 것입니다. 따라서 테스트 데이터 중 일부가 의도치 않게 학습에 사용되어, 모델이 새 데이터로 얼마나 효과적으로 일반화되는지 정확히 측정할 수 없게 되었습니다.