Работа с несбалансированными наборами данных в машинном обучении: методы и лучшие практики

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


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

Но не бойтесь: для решения этой проблемы во время предварительной обработки можно использовать различные методы и лучшие практики, чтобы создать более сбалансированный набор данных и, следовательно, повысить точность модели.

В этой статье будет рассмотрено следующее:

  • Природа несбалансированных данных
  • Проблемы несбалансированных наборов данных
  • Как улучшить производительность модели
  • Использование недостаточной выборки
  • Использование передискретизации
  • Экономически чувствительное обучение и
  • Ансамблевые модели для несбалансированных наборов данных

Мы также рассмотрим Balanced-learn — пакет Python с открытым исходным кодом для решения проблемы несбалансированных наборов данных. Итак, если вы готовы заняться несбалансированными данными и раскрыть весь потенциал своих моделей машинного обучения, продолжайте читать!

Практические примеры работы с несбалансированными данными на Python можно найти в нашем курсе « Машинное обучение с несбалансированными данными» .

Онлайн-курс «Машинное обучение с несбалансированными данными».

Что такое несбалансированные данные?

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

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

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

Степень дисбаланса может значительно варьироваться и может быть вызвана такими факторами, как естественное неравномерное распределение или систематическая ошибка выборки при сборе данных. Понимание характеристик и различий между двоичными и мультиклассовыми несбалансированными данными, а также классами меньшинства и большинства поможет нам лучше справляться с ними.

Двоичные и мультиклассовые несбалансированные данные

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

В задачах двоичной классификации несбалансированные наборы данных возникают, когда один класс имеет значительно меньше образцов, чем другой (например, 80% образцов принадлежат классу A, а только 20% — классу B). Это явление также известно как «классовый дисбаланс».

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

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

Реальным примером многоклассового несбалансированного набора данных является набор данных медицинского диагноза. Будет несколько заболеваний или разных классов; у одного может быть более низкая частота встречаемости, чем у других.

Класс меньшинства против класса большинства

Как в двоичных, так и в мультиклассовых несбалансированных данных мы найдем:

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

Важность определения класса меньшинства и класса большинства

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

В примере с медицинским диагнозом класс меньшинства — это редкое заболевание, которое необходимо выявить, тогда как класс большинства — это более распространенные заболевания.

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

Почему несбалансированные данные создают проблемы для машинного обучения

Несбалансированные данные представляют собой проблему для машинного обучения по нескольким причинам.

Предвзятые модели

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

Неравномерное распределение классов

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

Различная стоимость ошибок неправильной классификации

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

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

Как решать проблемы классификации несбалансированных данных

Работа с несбалансированными данными гарантирует, что модели машинного обучения смогут эффективно обучаться и обобщать новые, невидимые данные. Вот некоторые из наиболее эффективных методов обработки несбалансированных данных и повышения производительности модели.

Выбор правильных показателей оценки

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

Вместо этого для оценки производительности модели при работе с несбалансированными наборами данных следует использовать другие показатели производительности, такие как точность, полнота, показатель F1 и коэффициент корреляции Мэтьюза (MCC).

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

Повторная выборка обучающего набора

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

Использование перекрестной проверки

Перекрестная проверка позволяет:

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

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

Добавление дополнительных данных

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

Настройка порога

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

Вы можете использовать кривые ROC и кривые Precision-Recall, чтобы определить оптимальный порог для классификатора. Кроме того, площадь под кривой (AUC) можно использовать в качестве показателя для оценки эффективности различных пороговых значений. Примеры расчета roc_auc вы найдете в нашем  репозитории кода GitHub для несбалансированных данных .

Разработка пользовательского классификатора

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

Например, машины опорных векторов (SVM) включают параметр стоимости (class_weight), который помогает регулировать относительную важность различных классов для устранения дисбаланса классов.

Какой метод решения задач классификации наиболее эффективен?

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

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

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

Обзор недостаточной выборки

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

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

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

Более подробно о различных методах недостаточной выборки вы можете узнать в нашем курсе « Машинное обучение с несбалансированными данными ». Здесь мы выделим три наиболее распространенных из них.

Распространенные методы недостаточной выборки

  • Случайная недостаточная выборка: этот метод случайным образом удаляет выборки из большинства классов до достижения сбалансированного распределения классов.
  • Ссылки Томека: этот метод идентифицирует образцы, ближайшие к границе решения, и удаляет их, чтобы улучшить разделение классов.
  • Отредактированные ближайшие соседи. В этой процедуре недостаточной выборки образцы, которые недостаточно согласуются со своим окружением, удаляются из набора данных. Говоря простым языком, он рассматривает каждое наблюдение из класса большинства, и если большинство его соседей также не принадлежат к классу большинства, то наблюдение удаляется.

Давайте оценим плюсы и минусы методологий недостаточной выборки:

Плюсы

  • Исправляет несбалансированные данные, чтобы снизить риск смещения в сторону класса большинства.
  • Делает класс меньшинства равным классу большинства для анализа данных.
  • Требует меньше места для хранения и времени для анализа, что может сэкономить ресурсы предприятия.
  • Может сократить время выполнения анализа и обучения модели.

Минусы

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

Обзор передискретизации

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

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

Наиболее распространенным методом является случайная передискретизация, которая, по сути, просто дублирует точки данных. Чтобы избежать дублирования данных, группа специалистов по данным разработала SMOTE. Давайте узнаем, о чем они.

Распространенные методы передискретизации

  • Случайная передискретизация: этот метод случайным образом дублирует выборки из классов меньшинства до тех пор, пока не будет достигнуто сбалансированное распределение классов.
  • SMOTE (метод избыточной выборки синтетического меньшинства): он создает синтетические выборки классов меньшинств путем интерполяции между существующими выборками классов меньшинств в наборе обучающих данных и их k-ближайшими соседями. Таким образом, это позволяет избежать дублирования данных.

SMOTE подходит только для непрерывных переменных. Поэтому существуют расширения SMOTE, которые обрабатывают наборы данных как с числовыми, так и с категориальными переменными или только с категориальными переменными. Существуют также другие методы передискретизации, такие как ADASYN, где выборкам в пространстве признаков, которые труднее изучить, придается больший вес. Подробнее об альтернативных методах передискретизации вы можете узнать в нашем курсе « Машинное обучение с несбалансированными данными ».

Давайте оценим плюсы и минусы методологий передискретизации:

Плюсы

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

Минусы

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

Недостаточная или передискретизация: какой выбрать?

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

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

С другой стороны, передискретизация может быть полезна, когда у нас ограниченный объем данных. Однако крайне важно соблюдать осторожность при использовании передискретизации, особенно когда дисбаланс классов значителен, поскольку мы будем вводить много искусственных точек данных или дублирования.

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

Обзор экономичного обучения

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

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

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

Распространенные экономичные методы обучения

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

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

Методы классификации, чувствительные к затратам, присваивают разным классам разные затраты на неправильную классификацию и пытаются оптимизировать чувствительный к затратам показатель, такой как точность, взвешенная по затратам. Цель состоит в том, чтобы минимизировать ожидаемую стоимость, а не общую точность.

Одной из распространенных реализаций алгоритмов, чувствительных к затратам, является использование параметра class_weight в модели (Scikit-learn), который присваивает вес каждому классу в обучающих данных для регулировки важности каждого класса во время обучения.

Плюсы

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

Минусы

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

Ансамблевые модели для несбалансированных данных

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

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

Однако некоторые ученые разработали конкретные ансамблевые модели, которые предназначены для лучшей классификации несбалансированных наборов данных и, следовательно, для решения проблемы классов «из коробки». Давайте рассмотрим некоторые из них.

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

  • Сбалансированное пакетирование (агрегирование начальной загрузки): несколько моделей обучаются на разных подмножествах обучающих данных, которые выбираются случайным образом с заменой. Повторная выборка меняет баланс распределения классов. Затем эти модели объединяются с помощью средневзвешенного значения для получения окончательного прогноза.
  • RUSBoost: он сочетает в себе (повторную) выборку данных и повышение производительности для повышения производительности классификации несбалансированных обучающих данных.
  • Балансирующий каскад: обучается каскад классификаторов, каждый из которых учится различать сбалансированное подмножество класса большинства и класса меньшинства. Неправильно классифицированные образцы большинства классов отбрасываются на каждом этапе, чтобы предотвратить их доминирование в классификаторе.

Существуют дополнительные варианты объединения и повышения с повторной выборкой. Чтобы узнать о них больше, ознакомьтесь с нашим курсом « Машинное обучение с несбалансированными данными ».

Плюсы

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

Минусы

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

Imbalanced-learn: пакет Python с открытым исходным кодом для работы с несбалансированными данными

Imbalanced-learn , или Imblearn, — это библиотека Python с открытым исходным кодом, предназначенная для решения проблем дисбаланса классов в машинном обучении. Библиотека предоставляет инструменты и алгоритмы для обработки несбалансированных наборов данных и повышения производительности модели.

Imbalanced-learn предлагает различные методы передискретизации и недостаточной выборки, в том числе:

  • Случайная передискретизация
  • SMOTE (техника избыточной выборки синтетического меньшинства) и варианты SMOTE.
  • ADASYN (адаптивная синтетическая выборка)
  • Томек ссылки
  • Центроиды кластера
  • Случайная недостаточная выборка
  • РядомМисс
  • Сжатый ближайший сосед
  • Отредактированный ближайший сосед
  • Односторонний выбор

И многое другое.

Библиотека также включает в себя ансамблевые методы, такие как Easy Ensemble, Balanced Baging и RUSBoost, которые позволяют повысить точность классификации несбалансированных данных.

Одним из важнейших преимуществ Imbalanced-learn является его совместимость с популярными библиотеками машинного обучения, такими как scikit-learn (sklearn), Keras и PyTorch. Это позволяет пользователям легко включать методы обработки несбалансированных данных в существующие конвейеры машинного обучения.

Imbalanced-learn использует функциональность sklearn совместно с методами fit() и resample() для изучения параметров из данных, а затем повторной выборки наборов данных.

Заворачивать

Работа с несбалансированными данными является важнейшим аспектом проектов машинного обучения и науки о данных и требует эффективных методов и инструментов для обеспечения точных прогнозов.

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


Источник: www.blog.trainindata.com

Комментарии: