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

Рассмотрим набор данных, содержащий категориальную метку, значение которой равно 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.

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

 {example weight} = {original example weight} ×{downsampling factor} 

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

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

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

Понижение выборки класса большинства дает следующие преимущества:

  • Более быстрая сходимость : во время обучения модель чаще видит класс меньшинства, что помогает модели быстрее сходиться.
  • Меньше дискового пространства . Объединив класс большинства в меньшее количество примеров с большими весами, модель использует меньше дискового пространства для хранения этих весов. Эта экономия дает больше дискового пространства для класса меньшинства, поэтому модель может собрать большее количество и более широкий диапазон примеров из этого класса.

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

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

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

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

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

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

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

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