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

Введение

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

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

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

Несбалансированные данные

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

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

Но в случае несбалансированных данных точность особенно не считается хорошим выбором. Чтобы понять это, давайте рассмотрим пример. Допустим, вы обучили классификационную модель на несбалансированном наборе данных, и на момент тестирования у вас соотношение выборок 90:10, или 90 % ваших выборок являются отрицательными (класс 0), а оставшиеся 10 % — положительные выборки (класс 1). ). Теперь, поскольку ваша модель будет переоснащена, она будет более смещена в сторону класса большинства. Если ваша модель предсказывает все тестовые образцы как 0, в соответствии с метрикой точности, ваша модель все равно будет точной на 90%, поскольку она правильно предсказала 0 образцов, но с точки зрения производительности это очень плохая модель, поскольку она не может предсказать любые положительные образцы.

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

Обработка данных о дисбалансе посредством выборки

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

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

Недостаточная выборка или пониженная выборка:

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

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

  • Случайная неполная выборка: это самый простой метод недостаточной выборки, при котором вам просто нужно случайным образом удалить некоторые выборки большинства классов.
  • Полная неполная выборка. Набор методов, известных как почти несоответствующая выборка, выбирает примеры из класса большинства с использованием KNN. Примеры класса большинства, ближайшие к трем примерам класса меньшинства с кратчайшим средним расстоянием, выбираются NearMiss-1. Чтобы выбрать экземпляры из класса большинства, NearMiss-2 сравнивает их с тремя экземплярами из класса меньшинства, наиболее близкого к ним в среднем. В NearMiss-3 для каждого примера из класса меньшинства выбираются наиболее близкие примеры из класса большинства.
  • Недостаточная выборка по ссылкам Tomek: это широко используемый метод недостаточной выборки. Пара выборок из обучающего набора, которые являются ближайшими соседями (имеют наименьшее расстояние в пространстве признаков), но принадлежат разным классам, называются связями Томека. Большинство экземпляров класса исключаются в пользу ссылок Tomek, которые часто являются неправильно классифицированными примерами, обнаруженными на границах классов.
  • Правило отредактированных ближайших соседей (ENN). Другой метод выбора выборок для удаления – правило отредактированных ближайших соседей (ENN). Это правило влечет за собой поиск случаев в наборе данных, которые неправильно классифицированы, и их устранение с использованием метода k=3 ближайших соседей.

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

Олкай Цирит и его команда из Uber AI смогли создать нейронную сеть, которая превзошла XGBoost. Узнайте больше, посмотрев этот ролик с нашего недавнего круглого стола для клиентов Comet.

Перевыборка или повышение частоты дискретизации:

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

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

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

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

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

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

Обработка данных дисбаланса с помощью алгоритмов классификации

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

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

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

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

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

Заключение

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

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

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

Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.

Если вы хотите внести свой вклад, перейдите к нашему призыву к участию. Вы также можете подписаться на получение нашего еженедельного информационного бюллетеня (Еженедельник глубокого обучения), заглянуть в блог Comet, присоединиться к нам в Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов и событий. и многое другое, что поможет вам быстрее создавать более качественные модели машинного обучения.