Несбалансированные данные — широко распространенная проблема в решениях для расширенной аналитики.
Введение
Данные с несбалансированными классами — распространенная проблема в машинном обучении. Если не обращаться соответствующим образом, это может привести к созданию модели, которая претендует на звание наиболее эффективной модели, но при этом смещается в сторону определенных классов.
Например, рассмотрим следующий набор данных, который содержит 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), Нью-Йорк, штат Нью-Йорк. АААИ Пресс.