Актуальные темы
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Команда Эндрю Нга однажды допустила большую ошибку в научной статье.
И это произошло из-за случайного разделения данных.
Вот что именно произошло (с решением):
Обычно наборы для обучения и валидации создаются с помощью случайного разделения.
Однако в многих ситуациях это может быть фатально для построения модели.
Рассмотрим создание модели, которая генерирует подписи для изображений.
Из-за врожденной природы языка каждое изображение может иметь множество различных подписей.
- Изображение-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
Топ
Рейтинг
Избранное

