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

Набор данных содержит 49 числовых (с плавающей запятой) переменных, которые содержат данные о показателях, влияющих на состояние экономики, и одну целевую переменную (ростовую корзину - независимо от того, была ли рецессия или нет), которая имеет значение 0 или 1. Данные были составлены на основе данных с 2000 по 2017 год из 27 африканских стран. Имеется крайний дисбаланс в целевой переменной (93% в классе «Без рецессии» по сравнению с 8% в классе «рецессия»).

Использование алгоритма на основе дерева решений

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

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

Изменение показателей оценки

Важно использовать более полные показатели оценки, такие как матрица путаницы, AUC-ROC (площадь под кривой оператора характеристики приемника), точность, отзывчивость и оценка F1, которые обеспечивают Лучшее представление об общей производительности модели по отношению к обоим классам. Матрица неточностей показывает фактические и прогнозируемые значения и может помочь нам вычислить истинные и ложные положительные / отрицательные значения, и, следовательно, мы можем найти AUC-ROC и рассчитать на его основе точность, отзыв и оценку F1. В целях этого анализа мы будем сравнивать оценки F1 и AUC-ROC для различных методов.

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

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

Ансамблевые методы

Методы ансамбля объединяют уроки из нескольких деревьев (слабые ученики), чтобы сделать более сильных учеников с более точными прогнозами. Пакетирование (например, случайный лес) и повышение (например, повышение градиента, XGBoost) - популярные подходы для моделей на основе дерева решений.

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

Использование перекрестной проверки снизило точность и показатели AUC-ROC для модели дерева решений. Судя по оценкам AUC-ROC, алгоритм случайного леса работает лучше всего. Однако все модели по-прежнему имеют низкие оценки для прогнозов меньшинства.

Обучение с учетом затрат

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

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

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

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

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

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

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

Показатели AUC-ROC и точности для алгоритмов близки к сглаживанию, когда применяется недостаточная выборка данных. Оценка точности модели дерева решений намного ниже базовой, но надежность прогнозов повысилась.

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

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

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

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

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

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

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

Оценка дерева решений при использовании SMOTE не так высока, как при использовании ансамблевых методов.

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

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

Https://elitedatascience.com/imbalanced-classes
https://machinelearningmaster.com/what-is-imbalanced-classification/
https://machinelearningmaster.com/tactics- to-combat-imbalanced-classes-in-your-machine-learning-dataset /
https://www.analyticsvidhya.com/blog/2017/03/imbalanced-data-classification/