Балансировка классов
При решении задачи двоичной классификации для одного из двух классов может быть собрано больше данных. Такой неравномерный баланс между классами приводит к тому, что модель обучения основывается в большей степени на данных мажоритарного класса, чем на данных миноритарного класса. Для того чтобы улучшить модель, можно сбалансировать классы.
Что представляет собой балансировка классов
Набор данных для двоичной классификации состоит из двух классов. Баланс классов — это относительная частота этих классов.
Если подбросить совершенно случайную монету необходимое количество раз, то получится идеально сбалансированный набор из двух классов (орел и решка). Среднее значение идеально сбалансированных классов равно 0,5 (где один класс равен 1, а другой — 0).
Во многих случаях баланс классов не будет равным. Это может привести к тому, что модель обучения будет основана в большей степени на данных мажоритарного класса, чем на данных миноритарного класса.
Пропорциональный перекос
Модель может быть очень точной, если угадать мажоритарный класс для несбалансированных данных. Например, если 95 процентов посетителей веб-сайта ничего не покупают, модель может с точностью до 95 процентов утверждать, что никто ничего не купит. Модель основывается на данных мажоритарного класса, но зачастую гораздо важнее проанализировать данные миноритарного класса. Например, почему остальные 5 процентов посетителей совершают покупки на веб-сайте?
Влияние балансировки классов
Если выполнить балансировку классов для данных, можно получить модель, которая будет в большей степени ориентирована на признаки и основана на данных миноритарного класса. Помимо всего прочего, балансировка классов может повлиять на модель следующим образом.
-
Более высокое значение F1, так как увеличился вес миноритарного класса.
-
В незначительной степени более низкий общий показатель точности, поскольку он не так сильно подвержен пропорциональному перекосу.
-
Более информативная модель, так как она в большей степени ориентируется на признаки и на то, как выделить отдельные классы. Значения SHAP могут быть более информативными в модели со сбалансированными классами.
Обратите внимание, что балансировка классов для небольших наборов данных может привести к потере данных признаков. Кроме того, при изменении пропорций в наборе данных часть информации может быть потеряна, что может исказить прогнозы модели.
Как сбалансировать классы
Для того чтобы сбалансировать данные в классах, сначала необходимо определить, какой баланс является идеальным для конкретного бизнес-сценария. Он может быть где-то от 80/20 до 50/50. Балансировка должна быть достаточной, чтобы получить то, что нужно, поскольку чрезмерная балансировка классов может привести к переобучению модели. Затем необходимо проверить модель с использованием вручную отложенных данных.
Наиболее распространенным методом балансировки классов является сокращение количества объектов мажоритарного класса (undersampling). Это делается путем случайного исключения некоторых данных мажоритарного класса, чтобы выровнять баланс с миноритарным классом. На рисунке показано, как делается выборка из мажоритарного класса в исходном наборе данных, чтобы получить набор данных со сбалансированными классами.