교차 검증
주어진 데이터 전체를 사용해 모델을 만들 경우, 해당 데이터에는 잘 동작하지만 새로운 데이터에는 좋지 않은 성능을 보이는 모델을 만들 가능성이 있다. 이러한 현상이 발생하는 주요 이유 중 하나가 과적합이다. 과적합 발생 여부를 알아내려면 주어진 데이터 중 일부는 모델을 만드는 훈련 데이터로 사용하고, 나머지 일부는 테스트 데이터로 사용해 모델을 평가해야 한다.
테스트 데이터는 모델의 파라미터를 정하는 데도 필요하다. 예를 들어, k 최근접 이웃 알고리즘을 적용할 때 몇 개의 이웃을 보도록 k를 설정해야 하는지의 문제를 생각해보자. k가 크면 여러 이웃을 볼 것이고, k가 작으면 적은 개수의 이웃을 보게 된다. 그리고 적절한 k 값은 데이터에 따라 다르다. 따라서 어떤 k를 사용해야 하는지는 테스트 데이터를 사용해서 알 수 있다.
교차 검증Cross Validation은 훈련 데이터와 테스트 데이터를 분리하여 모델을 만드는 방법 중 가장 자주 사용하는 기법으로, 데이터를 다수의 조각으로 나누어 훈련과 테스트를 반복하는 기법이다.
이제 과적합, 테스트 데이터, 교차 검증에 대해 좀 더 자세히 알아보자. 그런 다음 caret을 사용한 교차 검증 코딩에 대해 설명할 것이다.