데이터 분할 예

필요에 따라 데이터를 샘플링하고 샘플링한 후 다음 단계는 데이터를 학습 세트, 검증 세트, 테스트 세트로 분할하는 것입니다.

무작위 분할이 최선의 방식이 아닐 때

무작위 분할은 많은 ML 문제에 가장 좋은 접근 방식이지만 항상 적합한 솔루션은 아닙니다. 예를 들어 자연스럽게 유사한 예에 클러스터링된 데이터 세트를 생각해 보세요.

모델이 뉴스 기사의 텍스트에서 주제를 분류하려고 한다고 가정해 보겠습니다. 무작위 분할에 문제가 생기는 이유는 무엇인가요?

타임라인에는 4개의 개별 기사 클러스터('스토리 1', '스토리 2', '스토리 3', '스토리 3', '스토리 4')가 표시됩니다.) 그림 1. 뉴스 기사는 클러스터링을 통해 제공됩니다.

뉴스 기사는 클러스터에 표시됩니다. 동일한 주제에 관한 여러 기사가 거의 동시에 게시됩니다. 따라서 데이터를 무작위로 분할하면 테스트 세트와 학습 세트에 동일한 스토리가 포함될 수 있습니다. 실제로는 모든 스토리가 동시에 전송되기 때문에 이 방식으로는 작동하지 않으므로 분할은 이렇게 할 수 있습니다.

그림 1의 같은 기사는 더 이상 타임라인에서 제공되지 않습니다. 대신 이제 입자들이 학습 세트와 테스트 세트로 무작위로 나뉩니다. 학습 세트와 테스트 세트에는
각 4개 스토리에서 가져온 다양한 예시가 포함됩니다. 그림 2. 무작위 분할은 클러스터를 여러 세트로 분할하여 편향을 발생시킵니다.

이 문제를 해결하는 간단한 방법은 스토리가 게시된 날짜에 따라 데이터를 분할하는 것입니다. 따라서 같은 날 스토리가 같은 분할에 배치됩니다.

그림 1의 원래 타임라인은 이제 학습 세트와 테스트 세트로 나뉩니다. 1번 기사와 2번 기사의 모든 기사는 학습 세트에 있고, '스토리 3' 및 '스토리 4'의 모든 기사는 테스트 세트에 있습니다. 그림 3. 시간을 분할하면 클러스터가 대부분 동일한 집합에 속할 수 있습니다.

수만 개가 넘는 뉴스 기사의 경우 일별로 비율을 나눌 수 있습니다. 하지만 실제로는 2일의 뉴스 주기로 분할되어 표시됩니다. 또는 데이터가 컷오프에서 일정 거리 이내에 겹치지 않도록 버려야 합니다. 예를 들어 4월의 스토리를 학습한 후 5월 둘째 주를 테스트 세트로 사용하면 한 주의 간격이 겹치지 않도록 할 수 있습니다.