Обработка несбалансированных данных для классификации

Опубликовано: 20 Июля, 2021

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

  • Сбалансированный набор данных: в сбалансированном наборе данных существует примерно одинаковое распределение классов в целевом столбце.
  • Несбалансированный набор данных: в несбалансированном наборе данных существует крайне неравномерное распределение классов в целевом столбце.

Разберемся в этом на примере:
Пример: предположим, что существует проблема двоичной классификации со следующими данными обучения:

  • Всего наблюдений: 1000
  • Класс целевой переменной - «Да» или «Нет».

Дело 1:
Если есть 900 «Да» и 100 «Нет», то это представляет собой несбалансированный набор данных, поскольку существует очень неравное распределение двух классов. .

Случай 2:
Если есть 550 «Да» и 450 «Нет», то это представляет собой сбалансированный набор данных, поскольку существует примерно равное распределение двух классов.

Следовательно, существует значительная разница между размерами выборки двух классов в несбалансированном наборе данных.

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

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

Методы работы с несбалансированным набором данных:

  • Под выборкой:
    В этом методе мы уменьшаем размер выборки класса большинства и пытаемся сопоставить его с размером выборки класса меньшинства.

    Пример :
    Возьмем несбалансированный набор обучающих данных с 1000 записями.

    Перед отбором проб:

    • Целевой класс 'Да' = 900 записей
    • Целевой класс 'Нет' = 100 записей

    После недостаточной выборки:

    • Целевой класс 'Да' = 100 записей
    • Целевой класс 'Нет' = 100 записей

    Теперь у обоих классов одинаковый размер выборки.

    Плюсы:



    • Требуется низкая вычислительная мощность.

    Минусы:

    • Некоторые важные шаблоны могут быть потеряны из-за отбрасывания записей.
    • Полезно только для огромных наборов данных с миллионами записей.

    Примечание. Под выборкой следует делать только тогда, когда у нас есть огромное количество записей.

  • Передискретизация:
    В этом методе мы увеличиваем размер выборки класса меньшинства путем репликации и пытаемся сопоставить его с размером выборки класса большинства.

    Пример :
    Возьмем тот же несбалансированный набор обучающих данных с 1000 записями.

    Перед передискретизацией:

    • Целевой класс 'Да' = 900 записей
    • Целевой класс 'Нет' = 100 записей

    После передискретизации:

    • Целевой класс 'Да' = 900 записей
    • Целевой класс 'Нет' = 900 записей

    Плюсы:

    • Шаблоны не теряются, что повышает производительность модели.

    Минусы:

    • Репликация данных может привести к переобучению.
    • Требуется высокая вычислительная мощность.

Итак, что выбрать: «Недостаточная выборка» или «Передискретизация»?

Это зависит от набора данных. Если у нас большой набор данных, выберите « Недостаточная выборка», в противном случае выберите «Избыточная выборка».

Использование моделей на основе дерева:
«Древовидным моделям» легче работать с несбалансированным набором данных по сравнению с моделями на основе недерева из-за их иерархической структуры.

Различные древовидные модели:

  • Деревья решений
  • Случайные леса
  • Деревья с градиентным усилением

Использование алгоритмов обнаружения аномалий:

  • Алгоритмы обнаружения аномалий или выбросов - это «алгоритмы классификации одного класса», которые помогают выявлять выбросы (редкие точки данных) в наборе данных.
  • В несбалансированном наборе данных предположите, что «записи класса большинства как нормальные данные» и «записи класса меньшинства как данные выброса».
  • Эти алгоритмы обучаются на обычных данных.
  • Обученная модель может предсказать, является ли новая запись нормальной или выбросом.