Обработка несбалансированных данных для классификации
Сбалансированный и несбалансированный набор данных:
- Сбалансированный набор данных: в сбалансированном наборе данных существует примерно одинаковое распределение классов в целевом столбце.
- Несбалансированный набор данных: в несбалансированном наборе данных существует крайне неравномерное распределение классов в целевом столбце.
Разберемся в этом на примере:
Пример: предположим, что существует проблема двоичной классификации со следующими данными обучения:
- Всего наблюдений: 1000
- Класс целевой переменной - «Да» или «Нет».
Дело 1:
Если есть 900 «Да» и 100 «Нет», то это представляет собой несбалансированный набор данных, поскольку существует очень неравное распределение двух классов. .
Случай 2:
Если есть 550 «Да» и 450 «Нет», то это представляет собой сбалансированный набор данных, поскольку существует примерно равное распределение двух классов.
Следовательно, существует значительная разница между размерами выборки двух классов в несбалансированном наборе данных.
Проблема с несбалансированным набором данных:
- Алгоритмы могут быть смещены в сторону класса большинства и, таким образом, имеют тенденцию прогнозировать результат как класс большинства.
- Наблюдения класса меньшинства выглядят для модели как шум и игнорируются моделью.
- Несбалансированный набор данных дает неверную оценку точности.
Методы работы с несбалансированным набором данных:
- Под выборкой:
В этом методе мы уменьшаем размер выборки класса большинства и пытаемся сопоставить его с размером выборки класса меньшинства.Пример :
Возьмем несбалансированный набор обучающих данных с 1000 записями.Перед отбором проб:
- Целевой класс 'Да' = 900 записей
- Целевой класс 'Нет' = 100 записей
После недостаточной выборки:
- Целевой класс 'Да' = 100 записей
- Целевой класс 'Нет' = 100 записей
Теперь у обоих классов одинаковый размер выборки.
Плюсы:
- Требуется низкая вычислительная мощность.
Минусы:
- Некоторые важные шаблоны могут быть потеряны из-за отбрасывания записей.
- Полезно только для огромных наборов данных с миллионами записей.
Примечание. Под выборкой следует делать только тогда, когда у нас есть огромное количество записей.
- Передискретизация:
В этом методе мы увеличиваем размер выборки класса меньшинства путем репликации и пытаемся сопоставить его с размером выборки класса большинства.Пример :
Возьмем тот же несбалансированный набор обучающих данных с 1000 записями.Перед передискретизацией:
- Целевой класс 'Да' = 900 записей
- Целевой класс 'Нет' = 100 записей
После передискретизации:
- Целевой класс 'Да' = 900 записей
- Целевой класс 'Нет' = 900 записей
Плюсы:
- Шаблоны не теряются, что повышает производительность модели.
Минусы:
- Репликация данных может привести к переобучению.
- Требуется высокая вычислительная мощность.
Итак, что выбрать: «Недостаточная выборка» или «Передискретизация»?
Это зависит от набора данных. Если у нас большой набор данных, выберите « Недостаточная выборка», в противном случае выберите «Избыточная выборка».
Использование моделей на основе дерева:
«Древовидным моделям» легче работать с несбалансированным набором данных по сравнению с моделями на основе недерева из-за их иерархической структуры.
Различные древовидные модели:
- Деревья решений
- Случайные леса
- Деревья с градиентным усилением
Использование алгоритмов обнаружения аномалий:
- Алгоритмы обнаружения аномалий или выбросов - это «алгоритмы классификации одного класса», которые помогают выявлять выбросы (редкие точки данных) в наборе данных.
- В несбалансированном наборе данных предположите, что «записи класса большинства как нормальные данные» и «записи класса меньшинства как данные выброса».
- Эти алгоритмы обучаются на обычных данных.
- Обученная модель может предсказать, является ли новая запись нормальной или выбросом.