В этом разделе рассматриваются следующие три вопроса:
- В чем разница между сбалансированными по классам наборами данных и несбалансированными по классам наборами данных?
- Почему обучение несбалансированного набора данных затруднено?
- Как можно преодолеть проблемы обучения несбалансированных наборов данных?
Наборы данных со сбалансированным классом и несбалансированным классом
Рассмотрим набор данных, содержащий категориальную метку, значение которой соответствует либо положительному, либо отрицательному классу. В сбалансированном по классам наборе данных количество положительных и отрицательных классов примерно одинаково. Например, набор данных, содержащий 235 положительных и 247 отрицательных классов, является сбалансированным.
В наборе данных с несбалансированным классом одна метка встречается значительно чаще другой. В реальном мире несбалансированные по классам наборы данных встречаются гораздо чаще, чем сбалансированные. Например, в наборе данных о транзакциях по кредитным картам мошеннические покупки могут составлять менее 0,1% от общего числа примеров. Аналогично, в наборе данных медицинской диагностики количество пациентов с редким вирусом может составлять менее 0,01% от общего числа примеров. В наборе данных с несбалансированным классом:
- Более распространенное название — класс большинства .
- Менее распространенное название — класс меньшинства .
Сложность обучения наборов данных с сильным классовым дисбалансом
Обучение направлено на создание модели, которая успешно различает положительный и отрицательный классы. Для этого в пакетах должно быть достаточное количество как положительных, так и отрицательных классов. Это не является проблемой при обучении на наборе данных с умеренной несбалансированностью классов, поскольку даже небольшие пакеты обычно содержат достаточное количество примеров как положительного, так и отрицательного классов. Однако набор данных с сильной несбалансированностью классов может содержать недостаточно примеров меньшинства классов для корректного обучения.
Например, рассмотрим набор данных с несбалансированным классом, показанный на рисунке 6, в котором:
- 200 этикеток относятся к классу большинства.
- 2 этикетки относятся к классу меньшинства.

Если размер пакета равен 20, большинство пакетов не будут содержать ни одного примера класса меньшинства. Если размер пакета равен 100, каждый пакет будет содержать в среднем только один пример класса меньшинства, что недостаточно для корректного обучения. Даже значительно больший размер пакета всё равно приведёт к такому дисбалансу, что модель может не обучиться должным образом.
Обучение набора данных с несбалансированным классом
В процессе обучения модель должна усвоить две вещи:
- Как выглядит каждый класс, то есть какие значения характеристик соответствуют какому классу?
- Насколько распространен каждый класс, то есть каково относительное распределение классов?
Стандартное обучение объединяет эти две цели. В отличие от этого, следующий двухэтапный метод, называемый понижением частоты дискретизации и повышением веса класса большинства, разделяет эти две цели, позволяя модели достичь обеих .
Шаг 1: Понижение выборки большинства классов
Понижение выборки означает обучение на непропорционально низком проценте примеров класса большинства. То есть, вы искусственно заставляете несбалансированный по классам набор данных стать несколько более сбалансированным, исключая из обучения многие примеры класса большинства. Понижение выборки значительно увеличивает вероятность того, что каждый пакет будет содержать достаточно примеров класса меньшинства для корректного и эффективного обучения модели.
Например, несбалансированный по классам набор данных, показанный на рисунке 6, состоит из 99% примеров класса большинства и 1% класса меньшинства. Искусственное уменьшение выборки класса большинства в 25 раз позволяет создать более сбалансированный обучающий набор (80% класса большинства и 20% класса меньшинства), как показано на рисунке 7.

Шаг 2: Увеличьте вес класса с уменьшенной выборкой
Понижение частоты дискретизации вносит смещение прогноза , показывая модели искусственный мир, где классы более сбалансированы, чем в реальном мире. Чтобы исправить это смещение, необходимо «взвесить» большинство классов на коэффициент, соответствующий коэффициенту, на который была выполнена пониженная частота дискретизации. Повышенный вес означает, что потери в примере большинства классов рассматриваются более строго, чем потери в примере меньшинства классов.
Например, мы уменьшили вес большинства в 25 раз, поэтому нам необходимо увеличить вес большинства в 25 раз. То есть, когда модель ошибочно предсказывает большинство, следует рассматривать потерю так, как если бы это были 25 ошибок (умножьте обычную потерю на 25).

Насколько следует уменьшить и увеличить вес данных, чтобы сбалансировать набор данных? Чтобы найти ответ, поэкспериментируйте с различными коэффициентами уменьшения и увеличения веса, как и с другими гиперпараметрами .
Преимущества этой техники
Понижение частоты дискретизации и повышение веса большинства классов дает следующие преимущества:
- Лучшая модель: Полученная модель «знает» оба следующих факта:
- Связь между функциями и метками
- Истинное распределение классов
- Более быстрая сходимость: во время обучения модель чаще видит класс меньшинства, что способствует более быстрой сходимости модели.