Пример разделения данных

После сбора данных и выборки там, где это необходимо, следующим шагом будет разделение данных на наборы для обучения, наборы для проверки и наборы для тестирования .

Когда случайное разделение — не лучший подход

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

Предположим, вы хотите, чтобы ваша модель классифицировала тему из текста новостной статьи. Почему случайное разделение может быть проблематичным?

На временной шкале появляются четыре отдельных группы статей (помеченных как «История 1», «История 2», «История 3» и «История 4»). Рисунок 1. Новости группируются.

Новости появляются группами: несколько статей на одну и ту же тему публикуются примерно в одно и то же время. Таким образом, если мы разделим данные случайным образом, тестовый набор и обучающий набор, скорее всего, будут содержать одни и те же истории. На самом деле это не сработает, потому что все истории появятся одновременно, поэтому такое разделение приведет к перекосу.

Те же статьи с рисунка 1 больше не отображаются на временной шкале. Вместо этого статьи теперь случайным образом делятся на обучающую выборку и проверочную выборку. Набор для обучения и набор для тестирования содержат смесь разных примеров из всех четырех историй. Рисунок 2. Случайное разделение разделит кластер на наборы, что приведет к перекосу.

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

Исходная временная шкала на рисунке 1 теперь разделена на обучающий набор и тестовый набор. Все статьи из «Истории 1» и «Истории 2» входят в обучающую выборку, а все статьи из «Истории 3» и «Истории 4» — в тестовую выборку. Рисунок 3. Разделение по времени позволяет кластерам в основном оказаться в одном наборе.

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