Как показывает пример с новостями , чисто случайное разделение не всегда является правильным подходом.
Частый метод для онлайн-систем — разделить данные по времени, чтобы вы:
- Соберите данные за 30 дней.
- Тренируйтесь на данных с 1-го по 29-й день.
- Оцените данные с 30-го дня.
Для онлайн-систем данные обучения старше, чем данные обслуживания, поэтому этот метод гарантирует, что ваш набор проверки отражает задержку между обучением и обслуживанием. Однако разбиение по времени лучше всего работает с очень большими наборами данных, например, с десятками миллионов примеров. В проектах с меньшим количеством данных распределения между обучением, проверкой и тестированием оказываются совершенно разными.
Вспомним также недостаток разделения данных из литературного проекта по машинному обучению, описанный в Ускоренном курсе по машинному обучению . Данные представляли собой литературу, написанную одним из трех авторов, поэтому данные можно разделить на три основные группы. Поскольку команда применила случайное разделение, данные из каждой группы присутствовали в наборах для обучения, оценки и тестирования, поэтому модель училась на информации, которой у нее не обязательно было бы во время прогнозирования. Эта проблема может возникнуть в любое время, когда ваши данные группируются, будь то данные временных рядов или группируются по другим критериям. Знание предметной области может сообщить, как вы разделяете свои данные.
Дополнительные сведения см. в следующих модулях ускоренного курса по машинному обучению: