Набор данных классификации с искаженными пропорциями классов называется несбалансированным . Классы, составляющие большую часть набора данных, называются классами большинства . Те, которые составляют меньшую долю, являются классами меньшинства .
Что считается дисбалансом? Ответ может варьироваться от умеренного до экстремального, как показано в таблице ниже.
Степень дисбаланса | Доля меньшинства |
---|---|
Мягкий | 20-40% набора данных |
Умеренный | 1-20% набора данных |
Экстрим | <1% набора данных |
Зачем обращать внимание на несбалансированные данные? Вам может потребоваться применить определенный метод выборки, если у вас есть задача классификации с несбалансированным набором данных.
Рассмотрим следующий пример модели, обнаруживающей мошенничество. Случаи мошенничества происходят один раз на 200 транзакций в этом наборе данных, поэтому в истинном распределении около 0,5% данных являются положительными.
Почему это может быть проблематично? С таким небольшим количеством положительных результатов по сравнению с отрицательными модель обучения будет тратить большую часть своего времени на отрицательные примеры и не будет учиться на положительных. Например, если размер партии равен 128, во многих партиях не будет положительных примеров, поэтому градиенты будут менее информативными.
Если у вас несбалансированный набор данных, сначала попробуйте провести обучение на истинном распределении. Если модель работает хорошо и обобщает, все готово! Если нет, попробуйте следующую технику понижения дискретизации и повышения веса.
Понижение дискретизации и повышение веса
Эффективным способом обработки несбалансированных данных является понижение и повышение веса мажоритарного класса. Давайте начнем с определения этих двух новых терминов:
- Понижающая выборка (в данном контексте) означает обучение на непропорционально низком подмножестве примеров большинства классов.
- Повышение веса означает добавление веса примера к классу с пониженной выборкой, равного коэффициенту, на который вы уменьшили выборку.
Шаг 1: Понизьте выборку большинства классов. Рассмотрим еще раз наш пример набора данных о мошенничестве с 1 положительным результатом на 200 отрицательных результатов. Понижение дискретизации в 10 раз улучшает баланс с 1 положительного на 20 отрицательных (5%). Хотя полученный тренировочный набор по-прежнему умеренно несбалансирован , соотношение положительных и отрицательных результатов намного лучше, чем исходное чрезвычайно несбалансированное соотношение (0,5%).
Шаг 2: Повышение веса класса с пониженной выборкой . Последний шаг — добавить весовые коэффициенты примера к классу с пониженной выборкой. Поскольку мы уменьшили выборку в 10 раз, вес примера должен быть равен 10.
Возможно, вы привыкли слышать термин вес , когда он относится к параметрам модели, таким как соединения в нейронной сети. Здесь мы говорим о весе примера , что означает более важный подсчет отдельного примера во время обучения. Вес примера 10 означает, что модель рассматривает пример как в 10 раз более важный (при расчете потерь), чем пример с весом 1.
Вес должен быть равен коэффициенту, который вы использовали для понижения дискретизации:
\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]
Почему Downsample и Upweight?
Может показаться странным добавлять веса примера после субдискретизации. Мы пытались улучшить нашу модель по сравнению с классом меньшинства — зачем нам придавать большее значение большинству? Это результирующие изменения:
- Более быстрая сходимость : во время обучения мы чаще видим миноритарный класс, что поможет модели быстрее сходиться.
- Место на диске : объединяя класс большинства в меньшее количество примеров с большими весами, мы тратим меньше места на диске для их хранения. Эта экономия дает больше места на диске для класса меньшинства, поэтому мы можем собрать большее количество и более широкий диапазон примеров из этого класса.
- Калибровка : Повышение веса гарантирует, что наша модель все еще откалибрована; результаты все еще можно интерпретировать как вероятности.