Что следует и чего не следует делать при столкновении с проблемой несбалансированных классов?

Если вы какое-то время работали над проблемами классификации, очень высока вероятность того, что вы уже сталкивались с данными с несбалансированными классами.

Название говорит само за себя, несбалансированный набор данных возникает при неравном представлении классов

Введение

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

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

Дисбаланс классов проявляется во многих областях, в том числе:

  • Обнаружение мошенничества
  • Фильтрация спама
  • Скрининг заболеваний
  • Отток подписчиков SaaS
  • Клики по рекламе

Почему моя Модель ведет себя безумно?

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

Что я делаю неправильно?

Мой подход основан на моем знании оценочных матриц, которые на самом деле сбивают меня с толку. ТОЧНОСТЬ — неправильная матрица при работе с несбалансированным набором данных.

Освежим память: Матрица путаницы, Точность, Отзыв и F1

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

Дадим краткое описание этих показателей.

  • Точность модели – это общее количество правильных прогнозов, деленное на общее количество прогнозов.
  • Точность класса определяет, насколько достоверен результат, когда модель отвечает, что точка принадлежит этому классу.
  • Отзыв класса показывает, насколько хорошо модель способна обнаружить этот класс.
  • Оценка F1 класса дается гармоническим средним значением точности и полноты (2 × точность × полнота / (точность + полнота)), она объединяет точность и полноту класса в одном показатель.

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

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

РПЦ и АУРОК

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

Предположим, что для данной точки x у нас есть модель, которая выводит вероятность того, что эта точка принадлежит C: P(C | x). Основываясь на этой вероятности, мы можем определить решающее правило, состоящее в том, что x принадлежит классу C тогда и только тогда, когда P(C | x)≥T, где T — заданный порог, определяющий наше решающее правило. Если T=1, точка помечается как принадлежащая C только в том случае, если модель на 100 % уверена в этом. Если T=0, все точки помечаются как принадлежащие C.

Каждое значение порога T генерирует точку (ложноположительную, истинно положительную), и тогда кривая ROC представляет собой кривую, описываемую совокупностью точек, генерируемых при изменении T от 1 до 0. Эта кривая начинается в точке (0,0 ), заканчивается в точке (1,1) и возрастает. Хорошая модель будет иметь кривую, которая быстро увеличивается от 0 до 1 (это означает, что нужно пожертвовать лишь небольшой точностью, чтобы получить высокий отзыв).

На основе кривой ROC мы можем построить другую метрику, более простую в использовании, для оценки модели: AUROC, которая представляет собой площадь под кривой ROC. AUROC немного действует как скалярное значение, которое суммирует всю кривую ROC. Как видно, AUROC имеет тенденцию к 1,0 в лучшем случае и к 0,5 в худшем случае.
Здесь снова хороший показатель AUROC означает, что модель, которую мы оцениваем, не жертвует большой точностью, чтобы получить хорошее припоминание наблюдаемого класса (часто класса меньшинства).

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

1. Соберите больше данных:

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

2. Попробуйте изменить показатель эффективности:

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

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

  • Матрица путаницы: разбивка прогнозов на таблицу, показывающую правильные прогнозы (диагональ) и типы сделанных неверных прогнозов (какие классы были присвоены неверным прогнозам).
  • Точность. Мера точности классификатора.
  • Отзыв: мера полноты классификаторов.
  • Оценка F1 (или F-оценка): средневзвешенное значение точности и полноты.
  • Каппа (или каппа Коэна): точность классификации, нормированная дисбалансом классов в данных.
  • Настроить порог принятия решения
  • Корректировка затрат на ошибочную классификацию

3. Классификаторы, чувствительные к затратам

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

4. Алгоритм повышения

AdaCost, WEKA, AdaBoost, Gradient Boost, XGBoost:xgboost предлагает параметры для балансировки положительных и отрицательных весов с использованием scale_pos_weight(https://stats .stackexchange.com/questions/171043/how-to-tune-hyperparameters-of-xgboost-trees)

5. Взвешивание примеров

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

Весовые коэффициенты класса (параметр class_weight)рассчитываются для каждого класса, а весовые коэффициенты тестового набора рассчитываются для каждого отдельного экземпляра. https://scikit-learn.org/stable/auto_examples/svm/plot_separating_hyperplane_unbalanced.html

6. Попробуйте разные алгоритмы

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

7. Используйте стратифицированное резюме

8. SVM со штрафом

В SVM, где желательно придать большее значение определенным классам или отдельным образцам, можно использовать параметры class_weight и sample_weight.

9. Бэггинг может дать интересные результаты.

10. Передискретизация

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

  • Избыточная выборка.Вы можете добавлять копии экземпляров из недопредставленного класса, что называется избыточной выборкой (или более формальной выборкой с заменой) или
  • Недостаточная выборка. Вы можете удалить экземпляры из чрезмерно представленного класса, что называется недостаточной выборкой.

A. Случайная передискретизация

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

Случайная избыточная выборка может увеличить вероятность переобучения, поскольку она создает точные копии примеров меньшинства. Таким образом, например, символический классификатор может создавать правила, которые на первый взгляд точны, но на самом деле охватывают один повторяющийся пример. — стр. 83, Изучение несбалансированных наборов данных, 2018 г.

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

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

Преимущества

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

Недостатки

  • Он может отбросить потенциально полезную информацию, которая может быть важна для построения классификаторов правил.
  • Выборка, выбранная методом случайной выборки, может быть необъективной выборкой. И это не будет точным представителем населения. Это приводит к неточным результатам с фактическим набором тестовых данных.
from imblearn.under_sampling import RandomUnderSampler
rus = RandomUnderSampler()
X_rus, y_rus, id_rus = rus.fit_sample(X, y)

plot_2d_space(X_rus, y_rus, 'Random under-sampling')

B. Случайная недостаточная выборка

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

При случайной недостаточной выборке (потенциально) отбрасываются огромные объемы данных. […] Это может быть очень проблематично, поскольку потеря таких данных может затруднить изучение границы принятия решения между экземплярами меньшинства и большинства, что приведет к потере производительности классификации. — стр. 45, Несбалансированное обучение: основы, алгоритмы и приложения, 2013 г.

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

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

Преимущества

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

Недостатки

  • Он может отбросить потенциально полезную информацию, которая может быть важна для построения классификаторов правил.
  • Выборка, выбранная методом случайной выборки, может быть необъективной выборкой. И это не будет точным представителем населения. Это приводит к неточным результатам с фактическим набором тестовых данных.
from imblearn.under_sampling import RandomUnderSampler
rus = RandomUnderSampler()
X_rus, y_rus, id_rus = rus.fit_sample(X, y)
plot_2d_space(X_rus, y_rus, 'Random under-sampling')

C. Недостаточная выборка: ссылки Tomek

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

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

from imblearn.under_sampling import TomekLinks
tl = TomekLinks(sampling_strategy='majority')
X_tl, y_tl= tl.fit_sample(X, y)plot_2d_space(X_tl, y_tl, 'Tomek links under-sampling')

D. Кластерная избыточная выборка

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

Всего наблюдений = 1000

Мошеннические наблюдения = 20

Не мошеннические наблюдения = 980

Частота событий = 2 %

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

  1. Кластер 1: 150 наблюдений
  2. Кластер 2: 120 наблюдений
  3. Кластер 3: 230 наблюдений
  4. Кластер 4: 200 наблюдений
  5. Кластер 5: 150 наблюдений
  6. Кластер 6: 130 наблюдений

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

  1. Кластер 1: 8 наблюдений
  2. Кластер 2: 12 наблюдений

После передискретизации каждого кластера все кластеры одного класса содержат одинаковое количество наблюдений.

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

  1. Кластер 1: 170 наблюдений
  2. Кластер 2: 170 наблюдений
  3. Кластер 3: 170 наблюдений
  4. Кластер 4: 170 наблюдений
  5. Кластер 5: 170 наблюдений
  6. Кластер 6: 170 наблюдений

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

  1. Кластер 1: 250 наблюдений
  2. Кластер 2: 250 наблюдений

Частота событий после выборки с передискретизацией на основе кластера = 500/(1020+500) = 33 %

Преимущества

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

Недостатки

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

E. Информированная избыточная выборка: метод синтетической избыточной выборки меньшинства для несбалансированных данных

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

Всего наблюдений = 1000

Мошеннические наблюдения = 20

Не мошеннические наблюдения = 980

Частота событий = 2 %

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

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

Класс меньшинства (Мошеннические наблюдения) = 300

Класс большинства (не мошеннические наблюдения) = 980

Частота событий = 300/1280 = 23,4 %

Преимущества

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

Недостатки

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

F. Модифицированный синтетический метод передискретизации меньшинства (MSMOTE) для несбалансированных данных

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

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

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

В то время как основной поток MSOMTE такой же, как и SMOTE (обсуждаемый в предыдущем разделе). В MSMOTE стратегия выбора ближайших соседей отличается от SMOTE. Алгоритм случайным образом выбирает точку данных из k ближайших соседей для выборки безопасности, выбирает ближайшего соседа из граничных выборок и ничего не делает для скрытых шум.

G. Методы алгоритмического ансамбля

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

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

H. Методы на основе бэггинга для несбалансированных данных

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

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

Всего наблюдений = 1000

Мошеннические наблюдения = 20

Не мошеннические наблюдения = 980

Частота событий = 2 %

Из популяции с заменой выбираются 10 бутстрепных выборок. Каждая выборка содержит 200 наблюдений. И каждый образец отличается от исходного набора данных, но напоминает набор данных по распределению и изменчивости.

Алгоритмы машинного обучения, такие как логистическая регрессия, нейронные сети, дерево решений, подгоняются к каждой начальной выборке из 200 наблюдений. А классификаторы c1, c2…c10 объединяются для создания составного классификатора. Эта методология ансамбля создает более сильный составной классификатор, поскольку она объединяет результаты отдельных классификаторов, чтобы получить улучшенный классификатор.

Преимущества

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

Недостатки

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

I. Методы бустинга для несбалансированных данных

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

Что такое базовые учащиеся/слабые классификаторы?

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

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

J. Adaptive Boosting — методы Ada Boost для несбалансированных данных.

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

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

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

Каждая из слабых гипотез имеет точность немного лучше, чем случайное угадывание, т. е. Error Term € (t) должен быть немного больше, чем ½-β, где β >0. Это фундаментальное предположение этого алгоритма бустинга, который может дать окончательную гипотезу с небольшой ошибкой.

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

Например, в наборе данных, содержащем 1000 наблюдений, 20 из которых помечены как мошеннические. Всем наблюдениям присваиваются одинаковые веса W1, и базовый классификатор точно классифицирует 400 наблюдений.

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

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

Преимущества

  1. Очень просто реализовать
  2. Хорошее обобщение - подходит для любой проблемы классификации ü Не склонен к переоснащению.

Недостатки

  1. Чувствителен к зашумленным данным и выбросам

K. Методы повышения градиентного дерева для несбалансированных данных

В Gradient Boosting многие модели обучаются последовательно. Это алгоритм численной оптимизации, в котором каждая модель минимизирует функцию потерь y = ax+b+e с использованием метода градиентного спуска.

Деревья решений используются в качестве слабых учеников в Gradient Boosting.

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

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

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

Например: в наборе обучающих данных, содержащем 1000 наблюдений, 20 из которых помечены как мошеннические, исходный базовый классификатор. Целевая переменная Fraud = 1 для мошеннических транзакций и Fraud = 0 для немошеннических транзакций.

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

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

Недостатки

  • Деревья с усилением градиента сложнее подобрать, чем случайные леса.
  • Алгоритмы повышения градиента обычно имеют 3 параметра, которые можно точно настроить: параметр усадки, глубина дерева, количество деревьев. Для хорошей посадки необходима правильная тренировка каждого из этих параметров. Если параметры настроены неправильно, это может привести к переобучению.

L. Методы XG Boost для несбалансированных данных

XGBoost (Extreme Gradient Boosting) — это расширенная и более эффективная реализация алгоритма Gradient Boosting, описанного в предыдущем разделе.

Преимущества перед другими методами бустинга

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

Важные моменты, на которые следует обратить внимание

  • И SMOTE, и ADASYN используют алгоритм KNN для создания новых выборок.
  • Другие варианты SMOTE и ADASYN отличаются друг от друга тем, что выбирают образец перед созданием новых образцов.
  • SVMSMOTE — использует классификатор SVM для поиска опорных векторов и генерации выборок с их учетом. Обратите внимание, что параметр C классификатора SVM позволяет выбирать большее или меньшее количество опорных векторов.
  • KMeansSMOTE — использует метод кластеризации KMeans перед применением SMOTE. Кластеризация сгруппирует образцы вместе и создаст новые образцы в зависимости от плотности кластера.
  • Все алгоритмы можно использовать с несколькими классами, а также с классификацией бинарных классов.
  • При работе со смешанными типами данных, такими как непрерывные и категориальные признаки, ни один из представленных методов (кроме класса RandomOverSampler) не может работать с категориальными признаками. SMOTENC — это расширение алгоритма SMOTE, в котором категориальные данные обрабатываются по-другому.

11. Интеграция семплирования и бустинга-SMOTEBoost, RUSBoost

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

RUSBoost достигает той же цели, выполняя случайную недостаточную выборку (RUS) на каждой итерации повышения вместо SMOTE.

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

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

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

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

Спасибо за чтение!!!!

Приятного чтения и продолжайте учиться….

Проверьте мой репозиторий Handling_imbalanced_dataset -GitHub:



Продолжим разговор в LinkedIn…



Вы также можете увидеть весь мой репозиторий GitHub….