Команда Эндрю Нга однажды допустила большую ошибку в научной статье. И это произошло из-за случайного разделения данных. Вот что именно произошло (с решением):
Обычно наборы для обучения и валидации создаются с помощью случайного разделения. Однако в многих ситуациях это может быть фатально для построения модели. Рассмотрим создание модели, которая генерирует подписи для изображений. Из-за врожденной природы языка каждое изображение может иметь множество различных подписей. - Изображение-1 → Подпись-1, Подпись-2, Подпись-3 и т.д. - Изображение-2 → Подпись-1, Подпись-2, Подпись-3 и т.д. Проверьте это 👇
Если мы используем случайное разделение, одна и та же точка данных (изображение) будет доступна в обучающем и валидационном наборах. В результате мы оцениваем модель на тех экземплярах, на которых она была обучена. Это пример утечки данных (также называемой утечкой группы), что приводит к переобучению!
То же самое произошло в статье Эндрю Нга, где они подготовили медицинский набор данных для обнаружения пневмонии. - Всего изображений = 112k - Всего пациентов = 30k Из-за случайного разделения изображения одного и того же пациента были доступны как в обучающем, так и в валидационном наборах. Это привело к утечке данных, и результаты валидации выглядели намного лучше, чем должны были. Это их первоначальная статья👇
Решение проблемы с перемешиванием групп. Есть два шага: 1) Сгруппировать все обучающие экземпляры, соответствующие одному изображению. 2) После группировки Вся ГРУППА (все примеры одного изображения) должна быть случайным образом назначена в обучающую или валидационную выборку. Это предотвратит утечку группы.
Если вы используете Sklearn, GroupShuffleSplit реализует эту идею. В качестве примера рассмотрим следующий набор данных: - x1 и x2 являются признаками. - y — это целевая переменная. - group обозначает критерий группировки. Проверьте это 👇
Сначала мы импортируем GroupShuffleSplit из sklearn и создаем объект. Затем метод split() этого объекта позволяет нам выполнить групповой разбиение. Он возвращает генератор, и мы можем распаковать его, чтобы получить следующий вывод: - Данные в группах "A" и "C" находятся вместе в обучающем наборе. - Данные в группе "B" находятся вместе в валидационном/тестовом наборе. Проверьте это 👇
Через несколько дней команда Эндрю Нга обновила статью после того, как использовала ту же стратегию перемешивания групп, чтобы гарантировать, что одни и те же пациенты не оказались как в обучающем, так и в валидационном наборах. 👉 Теперь ваша очередь: Сталкивались ли вы с этой проблемой раньше?
18,23K