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

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

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

В реальном мире

Представьте, что у вас есть модель, которая определяет, есть ли на картинке собака или кошка. Во время тестирования вы поняли, что ваша модель правильно идентифицирует всех собак на картинках, но не идентифицирует кошек. Просматривая свой обучающий набор данных, вы понимаете, что в нем было 10 000 изображений собак и только 100 изображений кошек. Это пример дисбаланса данных, когда наборы данных не имеют сопоставимого количества экземпляров для каждого класса объектов.

Правда в том, что несбалансированные данные повсюду, и невозможно избежать несбалансированных наборов данных. Рассмотрим пример опроса мнений владельцев электромобилей о плате за обслуживание электромобиля. Поскольку большинство людей, ездящих на электромобилях, имеют высокий годовой доход, 80 процентов результатов говорят о том, что «плата вполне разумная». Другими словами, набор данных смещен. Модель, обученная прогнозировать ответы на опросы, в основном будет предсказывать, что человек, независимо от дохода, манеры вождения или предпочтений в отношении автомобилей, сочтет сборы недорогими. Та же проблема возникает при изучении данных о преступности. Несбалансированный набор данных о преступности увековечит расовые и гендерные предубеждения, которые существуют в наборе данных при использовании искусственного интеллекта (ИИ) для прогнозирования преступного поведения. Использование методов для улучшения процессов обучения при столкновении с несбалансированными данными имеет решающее значение, и есть два основных способа сбалансировать данные обучения: сосредоточиться на наборах данных или на весах.

В ситуациях, когда мы не хотим менять модель, мы можем просто провести предварительную обработку данных. Другими словами, мы должны посмотреть на наш набор данных, понять распределение данных и решить, как провести повторную выборку наших данных, что является одним из шагов к балансировке обучающих данных. Здесь возможны два метода:

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

Балансировка веса — еще один хороший метод балансировки обучающих данных и борьбы с несбалансированными данными, и это делается путем добавления весов классов к функции потерь путем умножения логитов. Сначала мы определяем веса классов, чтобы придать дополнительный вес классам меньшинства, а затем умножаем веса классов на функцию потерь. В Tensorflow можно было бы сделать что-то вроде следующего:

loss = tf.nn.softmax_cross_entropy_with_logits(labels, pred)

взвешенные_потери = потери * классовые_веса

Зачем нам умножать веса на исходную функцию потерь? Это делает потерю средневзвешенной, где вес каждой выборки определяется class_weight соответствующего класса.

Прикладные подходы

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

Одним из примеров может быть недостаточная выборка с использованием Tomek Links, которые представляют собой пары очень близких образцов противоположных классов. Удаление образцов большинства классов для каждой пары увеличивает расстояние между двумя классами, что, в свою очередь, помогает процессу обучения. Другим примером может быть передискретизация с использованием метода SMOTE (Synthetic Minority Oversampling Technique). Сначала берется случайная выборка из класса меньшинства, затем находится ряд соседних с ним выборок. Затем между выбранным образцом и его соседями добавляются синтетические образцы. Таким образом, к миноритарному классу добавляется новая информация, а не просто копируется существующая информация.

Хотя обсуждаемые методы, основанные на данных, помогают сбалансировать набор обучающих данных для более эффективного обучения, их необходимо использовать с осторожностью, поскольку полученный набор обучающих данных не является репрезентативным для реального мира. При использовании этих методов теряется потенциально полезная информация о пропорциях каждого класса. Подходы к ансамблю на основе алгоритмов направлены на решение этой проблемы путем модификации алгоритмов машинного обучения для лучшей обработки данных и дисбаланса классов. Они включают в себя построение нескольких двухэтапных моделей из исходного набора обучающих данных или его подмножеств, а затем агрегирование их прогнозов.

Одним из примеров ансамблевого метода может быть бэггинг (агрегация начальной загрузки), который сначала создает k различных сбалансированных обучающих подмножеств из исходного набора обучающих данных, обучает k различных моделей с использованием подмножеств и, наконец, объединяет результаты модели. Этот метод сохраняет набор обучающих данных нетронутым, улучшая при этом производительность модели.

Хорошо балансируйте Друзья!

использованная литература

  • Эльхассан Т. и М. Альджурф. «Классификация данных дисбаланса с использованием Tomek Link (T-Link) в сочетании со случайной недостаточной выборкой (RUS) в качестве метода сокращения данных». (2016).
  • Чавла, Нитеш В. и др. «SMOTE: метод передискретизации синтетического меньшинства». Журнал исследований искусственного интеллекта 16 (2002): 321–357.
  • Брейман, Лео. «Беговые предсказатели». Машинное обучение 24.2 (1996): 123–140.