Это 10-й день моего участия в ноябрьском испытании обновлений. Узнайте подробности события:Вызов последнего обновления 2021 г.
Когда мы разрабатываем модели машинного обучения в реальных сценариях, доля выборок в наборе данных (особенно в задачах классификации), вероятно, будет несбалансированной. Поэтому, если обучение алгоритма используется непосредственно для классификации, эффект обучения может быть плохим. Поэтому как решить проблему перекоса данных?
обработка данных
передискретизация
Из-за несбалансированного соотношения выборок, если позволяют условия, можно попытаться активно получать выборочные данные небольшой доли.
также можно сделать с помощьюповторение,самозагрузкаилисинтезMinority Class] и другие методы (SMOTE) для создания новых редких образцов.
Простое копирование и повторение напрямую приведет к проблемам с переоснащением, если функций мало. Усовершенствованные методы передискретизации генерируют новые синтетические выборки (расширение данных) путем добавления случайного шума в класс меньшинства, искажения данных или по определенным правилам.
Примечание об алгоритме SMOTE:
Основная идея алгоритма SMOTE состоит в том, чтобы анализировать образцы класса меньшинства и искусственно синтезировать новые образцы в соответствии с образцами класса меньшинства и добавлять их в набор данных.Поток алгоритма выглядит следующим образом:
- Для каждой выборки x в классе меньшинства рассчитайте расстояние между точкой и другими точками выборки в классе меньшинства и получите ближайшие k ближайших соседей (то есть выполните алгоритм KNN для точки класса меньшинства).
- Коэффициент выборки устанавливается в соответствии с коэффициентом дисбаланса выборки для определения коэффициента выборки.Для каждой выборки класса меньшинства x несколько выборок выбираются случайным образом из k ближайших соседей, предполагая, что выбранным ближайшим соседом является x'.
- Для каждого случайно выбранного ближайшего соседа X' строится новая выборка с исходной выборкой по следующей формуле:
Однако недостатки алгоритма SMOTE также весьма очевидны:
- С одной стороны, это увеличивает вероятность перекрытия между классами (поскольку новая выборка генерируется для каждой выборки класса меньшинства, может возникнуть проблема перекрытия сгенерированных выборок (перекрытие)).
- Другим аспектом является создание некоторых образцов, которые не предоставляют полезной информации.
недостаточная выборка
Когда объем данных достаточен, набор данных можно сбалансировать, сохранив небольшую часть выборочных данных и уменьшив большую часть выборочных данных.
недостаток:
Некоторая важная информация в мажоритарном классе теряется.
изменить вес
Присвойте разный вес классам с разным объемом выборки (обычно он устанавливается обратно пропорциональным размеру выборки, при этом больший размер выборки дает меньший вес).
Используйте K-кратную перекрестную проверку
Перекрестная проверка должна правильно применяться при использовании методов передискретизации для устранения дисбалансов. Это связано с тем, что избыточная выборка наблюдает за редкими образцами и генерирует новые случайные данные сама по себе в соответствии с функцией распределения. Если перекрестная проверка применяется после избыточной выборки, то все, что мы делаем, — это подгоняем нашу модель к определенному искусственному Руководству по результатам.
Вот почему перекрестная проверка всегда должна выполняться перед передискретизацией данных, точно так же, как при выборе признаков. Только повторная выборка данных может внести случайность в набор данных, чтобы гарантировать отсутствие проблем переобучения.
Выберите подходящие показатели оценки
Для проблемы дисбаланса данных в машинном обучении рекомендуется использовать больше PR (кривая Precision-Recall) вместо кривой ROC.Если кривая ROC используется в качестве индекса оценки, легко игнорировать фактическое влияние на небольшое число образцов из-за высокого значения AUC Не идеально.
Когда данные чрезвычайно несбалансированы, вы можете наблюдать и наблюдать за точностью и скоростью отзыва результатов обучения различных алгоритмов на одних и тех же данных.Это имеет два преимущества.Одно из них заключается в том, чтобы понять чувствительность различных алгоритмов к данным, а другое заключается в том, чтобы прояснить, какая метрика оценки является более подходящей.
Уведомление:
Не смотрите только на Точность.Точность можно назвать самым неоднозначным показателем, потому что высокий показатель может вообще не отражать хорошего эффекта для бизнеса.В реальном производстве мы должны уделять больше внимания конкретным показателям, таким как точность/отзыв /mAP и сосредоточиться на этом индикаторе. , следует рассматривать в свете реальной ситуации.
Выберите правильный алгоритм
1. Выберите алгоритм, относительно нечувствительный к перекосу данных, например древовидные модели.
2. Ансамблевое обучение, т. е. мультимодельное бэггинг.
Во-первых, ряд подмножеств случайным образом извлекаются из большинства классов, и каждое подмножество объединено для обучения и генерировать несколько базовых классификаторов, а затем взвешивал новый классификатор, такой как добавление моделей, Adaboost, случайные леса.
3. Преобразуйте его в задачу обнаружения аномалий или задачу классификации.
Для сцен с чрезвычайно несбалансированными положительными и отрицательными образцами мы можем взглянуть на проблему с совершенно другой точки зрения: думать о ней как о проблеме одного класса (One Class Learning) или обнаружении аномалий (Novelty Detection).
Цель таких методов не в том, чтобы зафиксировать различия между классами, а в том, чтобы смоделировать один из них, например, одноклассовый SVM.
При возникновении дисбаланса данных, как выбрать план?
Есть много способов решить проблему дисбаланса данных.Выше приведены лишь некоторые из наиболее часто используемых методов, а существует так много наиболее часто используемых методов.Как выбрать подходящий метод в соответствии с реальной проблемой? Поговорим о решениях в разных ситуациях.
1. В случае очень небольшого количества положительных и отрицательных образцов следует использовать синтез данных;
2. Когда имеется достаточное количество отрицательных образцов и очень мало положительных образцов, и пропорция очень несопоставима, следует рассмотреть метод классификации;
3. Когда имеется достаточное количество положительных и отрицательных образцов и соотношение не сильно различается, следует рассмотреть методы выборки или взвешивания.
4. Выборка и взвешивание математически эквивалентны, но в практическом применении их эффекты различны. Особенно с такими методами классификации, как случайный лес, процесс обучения случайным образом выбирает обучающую выборку. В этом случае передискретизация часто лучше, чем взвешивание, если это позволяют вычислительные ресурсы.
5. Кроме того, хотя как избыточная, так и недостаточная выборка могут сбалансировать набор данных и эквивалентны при наличии достаточного количества данных, между ними есть разница. В практических приложениях избыточная выборка используется, если вычислительные ресурсы достаточны и имеется достаточно выборок нишевых классов, в противном случае используется недостаточная выборка, поскольку передискретизация увеличит размер обучающей выборки и, таким образом, увеличит время обучения, и в то же время, на небольшом тренировочном наборе очень легко произвести передискретизацию.
6. Для субдискретизации, если вычислительные ресурсы относительно велики и имеется хорошая параллельная среда, следует выбрать метод Ensemble (комбинированный метод).
Примечание о методе Ensemble:
Так называемый метод ансамбля заключается в объединении нескольких алгоритмов машинного обучения вместе или в объединении различных параметров алгоритма.
В основном делятся на следующие две категории:
- Методы усреднения, заключается в обучении нескольких алгоритмов или нескольких параметров алгоритма с использованием полного набора или части обучающих данных, а окончательный алгоритм представляет собой среднее арифметическое всех этих алгоритмов. Например, методы мешков, лес рандомизированных деревьев и т. д.
- Методы повышения, заключается в использовании базового алгоритма для прогнозирования, а затем использовании результатов предыдущих алгоритмов в других последующих алгоритмах, чтобы сосредоточиться на обработке ошибочных данных, тем самым постоянно снижая частоту ошибок. Мотивация состоит в том, чтобы использовать несколько простых слабых алгоритмов для получения очень мощных комбинаторных алгоритмов. Так называемое повышение заключается в повышении «слабого алгоритма обучения» до «сильного алгоритма обучения, который представляет собой процесс постепенного улучшения и постепенного обучения; например, AdaBoost (Adaptive Boost, адаптивное повышение), повышение градиентного дерева (GBDT) .