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

Почему кривая ROC не может хорошо измеряться?

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

Сформулируем эту проблему решения с помощью ярлыков либо положительно, либо отрицательно. Производительность модели может быть представлена ​​в виде матрицы неточностей с четырьмя категориями. Истинно положительные (TP) - это положительные примеры, которые правильно помечены как положительные, а ложные положительные (FP) - это отрицательные примеры, которые неправильно помечены как положительные. Аналогичным образом, Истинно-отрицательные (TN) - это отрицания, правильно помеченные как отрицательные, а ложно-отрицательные (FN) относятся к положительным примерам, неправильно помеченным как отрицательные.

Учитывая матрицу путаницы, мы можем определить матрицу:

В приведенной выше таблице показано, что TPR - это TP / P, который зависит только от положительных случаев. Кривые рабочих характеристик приемника (ROC) показывают соотношение TPR и FPR, как показано ниже. Площадь под кривой ROC (AUC) оценивает общую эффективность классификации. AUC не уделяет больше внимания одному классу по сравнению с другим, поэтому он плохо отражает класс меньшинства. Помните, что красная пунктирная линия на рисунке A - это результат, когда модели нет, а данные нарисованы случайным образом. Синяя кривая - это кривая ROC. Если кривая ROC находится поверх красной пунктирной линии, AUC составляет 0,5 (половина площади квадрата), и это означает, что результат модели не отличается от полностью случайного розыгрыша. С другой стороны, если кривая ROC находится очень близко к северо-западному углу, AUC будет близка к 1,0. Таким образом, AUC - это значение от 1,0 (отличное совпадение) до 0,5 (случайная выборка).

Дэвис и Гоадрич в этой статье предполагают, что кривые Precision-Recall (PR) будут более информативными, чем ROC, при работе с сильно искаженными наборами данных. Кривые PR показывают точность по сравнению с отзывом (FPR). Поскольку точность напрямую зависит от дисбаланса классов, кривые точности-отзыва лучше помогают выявить различия между моделями для сильно несбалансированных наборов данных. Когда вы сравниваете разные модели с несбалансированными настройками, область под кривой Precision-Recall будет более чувствительной, чем область под кривой ROC.

Оценка F1

Здесь следует указать счет F1. Это гармоническое среднее значение точности и запоминания:

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

Какие есть лекарства?

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

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

(1) Случайная недостаточная выборка для большинства

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

(2) NearMiss

Для решения проблемы потенциальной потери информации был предложен метод «ближнего соседа» и его варианты. Основные алгоритмы семейства ближайших соседей таковы: во-первых, метод вычисляет расстояния между всеми экземплярами класса большинства и экземплярами класса меньшинства. Затем выбираются k экземпляров класса большинства, которые имеют наименьшее расстояние до экземпляров класса меньшинства. Если есть n экземпляров в классе меньшинства, «ближайший» метод приведет к k * n экземплярам класса большинства.

«NearMiss-1» отбирает образцы класса большинства, чтобы их средние расстояния до трех ближайших экземпляров класса меньшинства были наименьшими. «NearMiss-2» использует три самых дальних образца класса меньшинства. «NearMiss-3» выбирает заданное количество ближайших выборок класса большинства для каждой выборки класса меньшинства.

(3) Краткое правило ближайшего соседа (CNN)

Чтобы избежать потери потенциально полезных данных, были предложены некоторые эвристические методы недостаточной выборки для удаления избыточных экземпляров, которые не должны влиять на точность классификации обучающего набора. Харт (1968) ввел сокращенное правило ближайшего соседа (CNN). Hart начинает с двух пустых наборов данных A и B. Первоначально первый образец помещается в набор данных A, а остальные образцы помещаются в набор данных B. Затем один экземпляр из набора данных B сканируется с использованием набора данных A в качестве обучающего набора. Если точка в B неправильно классифицирована, она переносится из B в A. Этот процесс повторяется до тех пор, пока не перестанут передаваться точки из B в A.

(4) TomekLinks

Таким же образом Томек (1976) предложил эффективный метод, который рассматривает образцы вблизи границы. Для двух экземпляров a и b, принадлежащих разным классам и разделенных расстоянием d (a, b), пара (a, b) называется связью Томека, если не существует экземпляра c, такого что d (a, c) ‹ d (a, b) или d (b, c) ‹d (a, b). Экземпляры, участвующие в ссылках Tomek, либо пограничные, либо шумные, поэтому оба они удаляются.

(5) Отредактированное правило ближайшего соседа (ENN)

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

(6) NeighbourhoodCleaningRule

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

(7) ClusterCentroids

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

Код Python

Ниже я демонстрирую методы выборки с помощью модуля scikit-learn Python imbalanced-learn. Ноутбук доступен по этой ссылке на github. Читателям необходимо установить пакет Python с помощью pip или conda install. Следующий процесс генерации данных (DGP) генерирует 2000 выборок с 2 классами. Данные крайне несбалансированы: каждому классу присвоено соотношение 0,03 и 0,97. Имеется 10 функций, из которых 2 информативные, 2 избыточные и 6 (10–2–2) повторяющиеся. Функция make_classification генерирует повторяющиеся (бесполезные) функции из информативных и повторяющихся функций. Избыточные функции - это просто линейные комбинации информативных функций. Каждый класс состоял из 2-х гауссовских кластеров. Для каждого кластера информативные признаки рисуются независимо от N (0, 1), а затем линейно объединяются вместе в каждом кластере. Важно знать, что если параметр weights оставлен пустым, классы сбалансированы.

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

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

Разве это не интересно? Как насчет техники передискретизации? Вторая статья Использование методов передискретизации для чрезвычайно несбалансированных данных показывает вам больше!

Дополнительное примечание при применении в H2O

Для специалистов по данным, использующих H2O.ai, как вы применяете вышеупомянутые методы выборки? Если вы не знакомы с H2O, в сообщении Мои лекции по случайному лесу, градиентному усилению, регуляризации и H2O.ai показаны фрагменты кода H2O для различных алгоритмов.

Сделать это довольно просто. Из приведенных выше фрагментов кода выборки вы получаете выборочные данные X_rs и соответствующие метки y y_rs. Все, что вам нужно сделать, это объединить X_rs и y_rs в фрейм данных, а затем как обычно преобразовать в фрейм данных H2O.

Заключение

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