고생 많았어요! 여기까지입니다. 하이파이브 한 번 하죠. 이제 가서 한잔 하자고요!
앗, 잠시만요. 문제가 하나 있습니다. 기계에 달린 손잡이를 조정할 때 테스트 정답을 외워 버리는 것처럼, 가장 좋은 기계를 고를 때도 같은 오류를 범할 수 있습니다. 기계를 선택할 때 따로 저장한 데이터를 사용한다고 가정해 봅시다. k-NN을 예로 들면, 가장 좋은 k를 선택하는 상황이지요. 가능한 모든 경우의 k를 테스트했습니다. 우리가 가진 사례가 50개라고 하면, k는 1부터 50까지 값을 고를 수 있지요. 실험 결과로 27이 가장 좋은 k 값임을 밝혔습니다. 훌륭한 결과입니다. k 값을 바꿀 때마다 같은 테스트 데이터를 썼다는 점만 빼면 말이죠. 고객들이 모델을 사용할 때 얻을 결과를 시험해 볼 테스트 데이터가 더 이상 남아 있지 않습니다. 모델을 튜닝하는 데 그 데이터를 써 버렸기 때문이죠. 이 문제를 어떻게 해결해야 할까요?
그에 대한 답은 또 다른 데이터 세트1를 떼어 놓는 것입니다. 이전에 데이터를 분리했던 방법을 한 번 더 사용하는 것이죠. 따로 떼어 둔 데이터 세트는 두 개입니다. 첫 번째 세트는 모델을 고를 때 사용합니다. 두 번째 세트는 모델이 고객들에게 인도되었을 때 잘 동작할지 평가하는 목적으로 사용합니다. 이외에도 모델 훈련에 사용하는 훈련 세트도 있다는 것을 기억하세요.
1 역주 전체 데이터셋(dataset)에서 훈련과 테스트 용도로 나눈 것을 훈련 세트(training set), 테스트 세트(test set)라고 합니다. 번역서에서는 전체 set과 나눈 set를 구분하기 쉽도록 ‘셋’과 ‘세트’로 나누어서 칭하겠습니다.