Дисбаланс классов исследование техник недосэмплирования

Дисбаланс классов исследование техник недосэмплирования в области моды и красоты

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

Ранее мы уже формально объяснили эффект дисбаланса классов и его причины, а также рассмотрели несколько методов для борьбы с этой проблемой, таких как случайный оверсэмплинг, ROSE, RWO, SMOTE, BorderlineSMOTE1, SMOTE-NC и SMOTE-N. В этой статье мы попытаемся провести аналогичный обзор методов недосэмплинга, предполагая, что из нашего предыдущего объяснения очевидно, как недосэмплинг помогает решить проблему дисбаланса.

Методы недосэмплинга обычно разделяются на две основные категории: контролируемые и неконтролируемые. В контролируемых методах алгоритм получает число, указывающее, сколько образцов должно быть в конечном наборе данных; тем временем, в неконтролируемых методах недосэмплинга обычно просто удаляются точки, удовлетворяющие некоторому условию. Нет заранее известного числа точек, которые будут удовлетворять такому условию, и, очевидно, это невозможно контролировать. В этой статье мы рассмотрим два контролируемых метода недосэмплинга (случайный и метод k-средних) и два неконтролируемых метода недосэмплинга (Tomek Links и Edited Nearest Neighbors).

Наивный случайный недосэмплинг

В этом методе, если известно, что из класса k следует удалить N_k точек, то N_k точек случайным образом выбираются из этого класса для удаления.

Ниже приведен пример недосэмплинга двух основных классов в данных с тремя классами 0, 1 и 2.

Изображение автора, использующее пакет Imbalance.jl в Julia

Ниже приведена анимация, показывающая результаты при различных степенях недосэмплинга

Анимация автора, использующая пакет Imbalance.jl в Julia

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

K-Means недосэмплинг

Мы можем сохранить распределение данных, быть более осторожными в выборе точек для удаления (или для сохранения). В K-Means недосэмплинге, если требуется иметь N_k точек для класса k, то выполняется алгоритм K-means с K=N_k, в результате чего получается N_k конечных центроидов. K-means недосэмплинг позволяет сделать эти центры (или ближайшего соседа каждого из них; это гиперпараметр) окончательными N_k точками для возврата. Поскольку сами центры сохраняют распределение данных, это приводит к более малому набору точек, которые также его сохраняют.

Ниже приведен пример недосэмплинга двух основных классов в данных с тремя классами 0, 1 и 2.

Изображение автора, использующее пакет Imbalance.jl в Julia

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

Анимация автора, использующая пакет Imbalance.jl в Julia

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

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

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

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

Рисунок автора, сделанный с помощью пакета Imbalance.jl на языке Julia

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

Чтобы увидеть это более подробно на практике, когда все классы в конечном итоге удаляются, рассмотрим следующую анимацию:

Анимация автора, сделанная с помощью пакета Imbalance.jl на языке Julia

Андерсэмплинг методом показательно-ближайших соседей

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

Эта анимация иллюстрирует алгоритм в действии:

Анимация автора, сделанная с помощью пакета Imbalance.jl на языке Julia

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

Анимация автора, сделанная с помощью пакета Imbalance.jl на языке Julia

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

Это завершает нашу экскурсию по некоторым интересным алгоритмам недостаточного сэмплирования. Надеюсь, что это помогло вам узнать больше о контролируемом и неуправляемом недостаточном сэмплировании. До следующего раза, au revoir.

Ссылки:

[1] Wei-Chao, L., Chih-Fong, T., Ya-Han, H., & Jing-Shang, J. (2017). Clustering-based undersampling in class-imbalanced data. Information Sciences, 409–410, 17–26.

[2] Ivan Tomek. Two modifications of cnn. IEEE Trans. Systems, Man and Cybernetics, 6:769–772, 1976.

[3] Dennis L Wilson. Asymptotic properties of nearest neighbor rules using edited data. IEEE Transactions on Systems, Man, and Cybernetics, pages 408–421, 1972.