Разделение ваших данных

Как показывает пример с новостями , чисто случайное разделение не всегда является правильным подходом.

Частый метод для онлайн-систем — разделить данные по времени, чтобы вы:

  • Соберите данные за 30 дней.
  • Тренируйтесь на данных с 1-го по 29-й день.
  • Оцените данные с 30-го дня.

Для онлайн-систем данные обучения старше, чем данные обслуживания, поэтому этот метод гарантирует, что ваш набор проверки отражает задержку между обучением и обслуживанием. Однако разбиение по времени лучше всего работает с очень большими наборами данных, например, с десятками миллионов примеров. В проектах с меньшим количеством данных распределения между обучением, проверкой и тестированием оказываются совершенно разными.

Вспомним также недостаток разделения данных из литературного проекта по машинному обучению, описанный в Ускоренном курсе по машинному обучению . Данные представляли собой литературу, написанную одним из трех авторов, поэтому данные можно разделить на три основные группы. Поскольку команда применила случайное разделение, данные из каждой группы присутствовали в наборах для обучения, оценки и тестирования, поэтому модель училась на информации, которой у нее не обязательно было бы во время прогнозирования. Эта проблема может возникнуть в любое время, когда ваши данные группируются, будь то данные временных рядов или группируются по другим критериям. Знание предметной области может сообщить, как вы разделяете свои данные.

Дополнительные сведения см. в следующих модулях ускоренного курса по машинному обучению: