Проблема дисбаланса классов

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

В предыдущей лекции я отмечал, что у нас есть лишь 547 примеров из класса 1 и 4953 примера из класса 0; таким образом, класс 1 крайне недостаточно представлен в наших данных. На этой лекции мы разберём, почему это является проблемой для классификатора.

Лучше всего это проиллюстрировать на примере медицины. Предположим, к примеру, мы проверяем наличие у пациентов некоторой болезни. Большинство населения ею не болеют. Таким образом, по нашим наблюдениям 99% представляют отрицательный класс, и лишь 1% – положительный.

Что будет с нашим классификатором? Если каждый раз выдавать прогноз «болезни нет», то в 99% случаях это будет правильным ответом, и можно победно отчитаться, что наш фиктивный «тест» является правильным в 99% случаев. На самом же деле он не имеет смысла, поскольку мы ничего не узнали из имеющихся у нас данных.

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

Вот некоторые способы решения этой проблемы. Предположим, у нас есть 1000 примеров из класса 1 и всего 100 примеров из класса 2. Один из простейших способов – случайным образом взять лишь 100 примеров из класса 1, и тогда мы получим по 100 примеров в каждом классе. Второй способ – оставить 1000 примеров из 1-го класса и искусственно создать 1000 примеров 2-го класса, повторив набор 2-го класса 10 раз. Обратите внимание, что оба этих метода имеют одинаковый ожидаемый коэффициент ошибок. Впрочем, как вы знаете, важна также дисперсия, поэтому мы можем ожидать, что второй способ будет работать лучше, поскольку включает в себя больше данных.

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

Имейте в виду, что существуют и другие способы измерения точности модели, учитывающие дисбаланс классов. Они используются в медицине и при поиске информации; при этом идёт попытка учесть оба класса. Это допускает использование двоичной классификации.

Суть в том, что мы хотим максимизировать и истинный положительный результат (TP), и истинный отрицательный результат (TN), в то же время стараясь минимизировать ложный положительный (FP) и ложный отрицательный (FN) результаты. Ложный положительный результат получается, когда прогнозируется положительный результат, хотя на самом деле он отрицательный, а ложный отрицательный результат получается, когда предсказывается отрицательный результат, хотя в действительности он положительный. Обратите внимание, что в таком случае точность является суммой истинных положительных и истинно отрицательных результатов, делённое на общее количество случаев:

С точки зрения медицины, рассматриваются два показателя – чувствительность и специфичность. Чувствительность (TPR) – это коэффициент истинных положительных результатов, то есть количество истинных положительных результатов, делённое на сумму истинных положительных и ложных отрицательных:

Специфичность (TNR) – это коэффициент истинных отрицательных результатов, то есть количество истинно отрицательных результатов, делённое на сумму истинно отрицательных и ложно положительных результатов:

В информационных технологиях используются понятия точности и полноты. Точность определяется как количество истинных положительных результатов, делённое на сумму истинных и ложных положительных результатов:

Полнота же определяется как количество истинных положительных результатов, делённое на сумму истинно положительных и ложно отрицательных результатов:

Обратите внимание, что полнота в точности равна чувствительности.

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

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

На самом же деле нам не обязательно использовать 0,5 в качестве порогового значения. Мы можем использовать любую величину между нулём и единицей и, таким образом, рассматривать любую двоичную классификацию. Разумеется, разные пороговые значения означают, что мы получим разные значения чувствительности и специфичности. Это называется кривой рабочей характеристики приёмника, или, проще говоря, кривой ошибок или ROC-кривой. Площадь под этой кривой, сокращённо обозначаемая AUC, показывает, насколько в целом удачен классификатор. Идеальный классификатор даст нам значение этой величины, равной единице, тогда как случайное угадывание даст диагональную прямую с величиной, равной 0,5.

Понравилась статья? Поделить с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: