ВВЕДЕНИЕ

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

МЕТОДЫ ПОВТОРНОЙ ВЫБОРКИ ДАННЫХ

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

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

from imblearn.over_sampling import SMOTE

smote = SMOTE()
X_resampled, y_resampled = smote.fit_resample(X_train, y_train)

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

from imblearn.under_sampling import RandomUnderSampler

undersampler = RandomUnderSampler()
X_resampled, y_resampled = undersampler.fit_resample(X_train, y_train)

ВЗВЕШИВАНИЕ КЛАССОВ:

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

from sklearn.ensemble import RandomForestClassifier

class_weights = {0: 1, 1: 10} # Assign higher weight to minority class
model = RandomForestClassifier(class_weight=class_weights)
model.fit(X_train, y_train)

МЕТОДЫ АНСАМБЛИ:

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

а) Бэггинг: Бэггинг обучает несколько классификаторов различным подмножествам данных и объединяет их прогнозы посредством голосования или усреднения. Бэггинг может помочь уменьшить влияние зашумленных или неправильно классифицированных экземпляров. Ниже приведен пример фрагмента кода для использования алгоритма Random Forest, метода ансамбля на основе мешков:

from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier()
model.fit(X_train, y_train)

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

from sklearn.ensemble import AdaBoostClassifier

model = AdaBoostClassifier()
model.fit(X_train, y_train)

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

РАСШИРЕННЫЕ МЕТОДЫ
Помимо вышеупомянутых методов, есть несколько продвинутых подходов, которые стоит изучить при работе с несбалансированными наборами данных:

а) Адаптивная синтетическая выборка (ADASYN): ADASYN — это расширение SMOTE, которое генерирует синтетические выборки для меньшинства, но придает большее значение экземплярам, ​​которые трудно изучить. Он фокусируется на создании выборок вблизи границы решения, что еще больше повышает производительность в классе меньшинства.

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

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

ЗАКЛЮЧЕНИЕ
Несбалансированность наборов данных классификации создает серьезные проблемы, но различные методы могут помочь решить эту проблему. Методы повторной выборки данных, такие как избыточная и недостаточная выборка, могут сбалансировать распределение классов, а взвешивание классов может регулировать важность каждого класса во время обучения. Методы ансамбля, такие как бэггинг и бустинг, используют несколько классификаторов для повышения производительности. Модели на основе дерева, такие как Random Forest и Gradient Boosting, имеют встроенные возможности для эффективной обработки дисбаланса. Кроме того, передовые методы, такие как ADASYN, экономичное обучение и одноклассовая классификация, предоставляют дополнительные возможности для обработки несбалансированных наборов данных.

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

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

подпишитесь на другие статьи, подобные этой!

Спасибо