Несбалансированные данные — широко распространенная проблема в решениях для расширенной аналитики.

Введение

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

Например, рассмотрим следующий набор данных, который содержит 10 классов, но вхождение каждого класса распределено неравномерно. Модель, обученная с использованием этого набора данных, смещена в сторону C1, C2, C4 и C5, но редко предсказывает классы C7, C8, C9 и C10.

повторная выборка

Метод передискретизации синтетического меньшинства (SMOTE) [1]

Это популярный и успешный подход, который создает новые образцы классов меньшинств, а не просто дублирует образцы. Рассмотрим предыдущий сценарий, в котором у нас есть только 3 выборки (C10_D_1, C10_D_2 и C10_D_3) C10 (поскольку у нас есть только 3 выборки, все три считаются соседними), а SMOTE создает линии между тремя точками данных и выбирает синтетические точки данных (C10_S_1). и C10_S_2) из ​​строк. Следующая диаграмма иллюстрирует графическое объяснение того, что мы обсуждали.

Это можно выполнить с помощью расширенной версии scikit-learn, которая называется «scikit-learn-contrib». В приведенном ниже фрагменте кода показано использование SMOTE с использованием scikit-learn-contrib. .

Алгоритм SMOTE имеет некоторые значения свойств для оптимизации; к сожалению, из-за нежизнеспособности метода оценки и преобразования для SMOTE Pipeline и RandomizedSearchCV нельзя использовать для выполнения автоматической оптимизации. Таким образом, нам нужно вручную блокировать и воспроизводить значения свойств для оптимизации. Дополнительные сведения о SMOTE и свойствах см. в [2].

Передискретизация [3], [4]

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

Шаг 1. Определение частоты (частота_из_большинства_класса) доминирующего класса в данных.

Шаг 2. Разделите набор данных на два (набор данных содержит доминирующие классы (DF_FOR_MAJORITY) и второстепенные классы (DF_FOR_MINORITY)).

Шаг 3. Получите список второстепенных классов.

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

Здесь мы используем n_samples= frequency_of_majority_class, чтобы указать количество генерируемых выборок.

Шаг 5. Объедините DF_FOR_MAJORITY и данные с избыточной выборкой (DF_FOR_MINORITY_OVERSAMPLED).

Следующая таблица будет результатом избыточной выборки.

Под выборкой [3]

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

Разница в том, что на шаге 1 рассматривается частота второстепенного класса вместо определения частоты доминирующего класса.

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

Последние мысли

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

использованная литература

[1] Н. В. Чавла, К. В. Бойер, Л. О. Холл, В. П. Кегельмейер, «SMOTE: метод передискретизации синтетического меньшинства», Журнал исследований искусственного интеллекта, 321–357, 2002.

[2] Леметр Г., Ногейра Ф. и Адидас К. (2016). «Имбалансное обучение: набор инструментов Python для борьбы с проклятием несбалансированных наборов данных в машинном обучении». CoRR абс/1609.06570.

[3] Кубат М. и Матвин С. (1997). Устранение проклятия несбалансированных тренировочных наборов: односторонний выбор. В: Труды четырнадцатой международной конференции по машинному обучению, стр. 179–186, Нэшвилл, Теннесси. Морган Кауфманн.

[4] Линг, К., и Ли, К. (1998). Интеллектуальный анализ данных для задач и решений прямого маркетинга. В: Труды Четвертой международной конференции по обнаружению знаний и интеллектуальному анализу данных (KDD-98), Нью-Йорк, штат Нью-Йорк. АААИ Пресс.