Наборы данных: несбалансированные наборы данных

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

В следующей таблице представлены общепринятые названия и диапазоны для различных степеней дисбаланса:

Процент данных, принадлежащих к классу меньшинства Степень дисбаланса
20–40 % набора данных Мягкий
1-20% набора данных Умеренный
<1% набора данных Экстрим

Например, рассмотрим набор данных по обнаружению вирусов, в котором класс меньшинства составляет 0,5% набора данных, а класс большинства — 99,5%. Чрезвычайно несбалансированные наборы данных, подобные этому, распространены в медицине, поскольку у большинства субъектов вируса не будет.

Рисунок 5. Гистограмма с двумя столбцами. Одна полоса показывает около 200 отрицательных классов; другой столбец показывает 1 положительный класс.
Рисунок 5. Чрезвычайно несбалансированный набор данных.

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

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

Понижение дискретизации и повышение веса

Один из способов справиться с несбалансированным набором данных — уменьшить выборку и повысить вес класса большинства. Вот определения этих двух новых терминов:

  • Понижение выборки (в этом контексте) означает обучение на непропорционально малом подмножестве примеров большинства классов.
  • Увеличение веса означает добавление примерного веса к классу с пониженной дискретизацией, равному коэффициенту, на который вы снизили дискретизацию.

Шаг 1: Уменьшите выборку класса большинства. Рассмотрим набор вирусных данных, показанный на рисунке 5, в котором соотношение 1 положительная метка на каждые 200 отрицательных меток. Понижение дискретизации в 10 раз улучшает баланс до 1 положительного и 20 отрицательных (5%). Хотя полученный обучающий набор по-прежнему умеренно несбалансирован , соотношение положительных и отрицательных значений намного лучше, чем исходная крайне несбалансированная пропорция (0,5%).

Рисунок 6. Гистограмма с двумя столбцами. Одна полоса показывает 20 отрицательных классов; другой столбец показывает 1 положительный класс.
Рисунок 6. Понижение разрешения.

Шаг 2. Увеличьте вес класса с пониженной дискретизацией . Добавьте примерные веса в класс с пониженной дискретизацией. После уменьшения дискретизации в 10 раз вес примера должен быть равен 10. (Да, это может показаться нелогичным, но позже мы объясним, почему.)

Рисунок 7. Двухэтапная диаграмма понижения дискретизации и повышения веса.             Шаг 1: Понижение выборки извлекает случайные примеры из класса большинства. Шаг 2. Повышение веса увеличивает вес примеров с пониженной дискретизацией.
Рисунок 7. Повышение веса.

Термин «вес» не относится к параметрам модели (например, w 1 или w 2 ). Здесь вес относится к весам примеров , что повышает важность отдельного примера во время обучения. Вес примера 10 означает, что модель рассматривает пример как в 10 раз более важный (при расчете потерь), чем пример с весом 1.

Вес должен быть равен коэффициенту, который вы использовали для понижения разрешения:

\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]

Может показаться странным добавление весов примера после понижения дискретизации. В конце концов, вы пытаетесь улучшить модель класса меньшинства, так зачем же придавать значение классу большинства? Фактически, повышение веса класса большинства имеет тенденцию уменьшать предвзятость прогноза . То есть увеличение веса после понижения дискретизации имеет тенденцию уменьшать разницу между средним значением прогнозов вашей модели и средним значением меток вашего набора данных.

Коэффициенты ребалансировки

Насколько вам следует уменьшать и увеличивать вес, чтобы сбалансировать набор данных? Чтобы определить ответ, вам следует поэкспериментировать с коэффициентом ребалансировки так же, как вы экспериментируете с другими гиперпараметрами . Тем не менее, ответ в конечном итоге зависит от следующих факторов:

  • Размер партии
  • Коэффициент дисбаланса
  • Количество примеров в обучающем наборе

В идеале каждая партия должна содержать несколько примеров классов меньшинств. Группы, которые не содержат достаточного количества классов меньшинств, будут обучаться очень плохо. Размер партии должен быть в несколько раз больше коэффициента дисбаланса. Например, если коэффициент дисбаланса составляет 100:1, то размер партии должен быть не менее 500.

Упражнение: Проверьте свое понимание.

Рассмотрим следующую ситуацию:

  • Обучающий набор содержит чуть более миллиарда примеров.
  • Размер пакета — 128.
  • Коэффициент дисбаланса составляет 100:1, поэтому обучающий набор делится следующим образом:
    • ~1 миллиард примеров класса большинства.
    • ~10 миллионов примеров классов меньшинств.
Какие из следующих утверждений верны?
Увеличение размера пакета до 1024 улучшит полученную модель.
При размере пакета 1024 каждый пакет будет содержать в среднем около 10 примеров меньшинства, что должно помочь в обучении гораздо лучшей модели.
Сохранение размера пакета на уровне 128, но понижение дискретизации (и увеличение веса) до 20:1 улучшит полученную модель.
Благодаря пониженной выборке каждая партия из 128 будет в среднем содержать около 21 примера класса меньшинства, чего должно быть достаточно для обучения полезной модели. Обратите внимание, что понижающая выборка уменьшает количество примеров в обучающем наборе с чуть более одного миллиарда до примерно 60 миллионов.
Текущие гиперпараметры в порядке.
При размере пакета 128 каждый пакет будет в среднем содержать около 1 примера класса меньшинства, чего может быть недостаточно для обучения полезной модели.