Как измерить производительность классификатора, когда почти 100% меток класса принадлежат одному классу?


9

В моих данных, у меня есть переменная класса, обозначенная как . Значения переменных этого класса: (двоичные). Почти все наблюдения равны 0 (близко к 100%, точнее 97%). Я хотел бы провести тест производительности на разных классификационных моделях (это может быть точность). Чего я боюсь, так это того, что если у меня есть классификационная модель, которая всегда классифицирует любое наблюдение в класс 0, то эта модель будет точной на 97% (даже если она никогда не учитывает другие переменные).0 , 1 СC0,1C

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

Ответы:


3

Несколько возможностей приходят на ум.

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

Во-вторых, как уже сказал @Shorack, укажите, какие типы ошибок являются важными. Зачастую классификатор должен соответствовать определенным критериям эффективности, чтобы быть полезным (а общая точность редко является адекватной мерой). Существуют такие меры, как чувствительность, специфичность, положительная и отрицательная ценность, которые учитывают различные классы и разные типы неправильной классификации. Вы можете сказать, что эти меры отвечают на различные вопросы о классификаторе:

  • чувствительность: какая доля случаев, действительно принадлежащих к классу С, признана таковой?
  • специфичность: Какая доля случаев, действительно не принадлежащих к классу C, признается как таковая?
  • положительное прогностическое значение: учитывая, что классификатор предсказывает класс C, какова вероятность того, что этот прогноз верен?
  • отрицательное прогностическое значение: учитывая, что классификатор предсказывает, что дело не относится к классу C, какова вероятность того, что это предсказание верно?

Эти вопросы часто позволяют сформулировать спецификации, которые нужны классификатору, чтобы быть полезными.

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

Вы также можете посмотреть на получение информации, которую дает вам положительный или отрицательный прогноз. Это измеряется положительным и отрицательным отношением правдоподобия, LR⁺ и LR⁻. Вкратце, они сообщают вам, насколько прогноз изменяет шансы в отношении рассматриваемого класса. (см. мой ответ здесь для более подробного объяснения)

Для вашего тривиального классификатора все выглядит так: я буду использовать класс «0» в качестве рассматриваемого класса, поэтому «положительный» означает класс «0». Из 100 случаев 100 прогнозируются положительными (относятся к классу 0). 97 из них действительно, 3 нет. Чувствительность для класса 0 составляет 100% (все 97 случаев, действительно принадлежащих к классу 0, были распознаны), специфичность равна 0 (ни один из других случаев не был распознан). значение положительного предсказания (при условии, что относительная частота 97: 3 является репрезентативным) составляет 97%, отрицательное значение предсказания не может быть рассчитано, так как не произошло отрицательного предсказания.

лр-=1-чувствительностьLR+=sensitivity1specificity=1
LR=1sensitivityspecificity=00
Теперь LR⁺ и LR⁻ - это факторы, с которыми вы умножаете шансы на случай, чтобы случай принадлежал положительному классу («0»). Наличие LR⁺ 1 означает, что положительный прогноз не дал вам никакой информации: он не изменит шансов. Итак, здесь у вас есть мера, которая четко выражает тот факт, что ваш тривиальный классификатор не добавляет никакой информации .


Совершенно другое направление мыслей: вы упоминаете, что хотели бы оценить разные классификаторы. Это немного похоже на сравнение или выбор классификатора. Предостережение с мерами, которые я обсуждаю выше, заключается в том, что они подвержены очень высокой случайной неопределенности (то есть вам нужно много тестовых случаев), если вы оцениваете их по «жестким» меткам классов. Если ваш прогноз в основном непрерывный (метрический, например, апостериорная вероятность), вы можете использовать связанные меры, которые смотрят на один и тот же тип вопроса, но используют не доли случаев, а непрерывные меры, см. Здесь . Они также будут лучше подходить для выявления небольших различий в прогнозах.

(@FrankHarrell скажет вам, что вам нужны «правильные правила оценки», так что это еще один поисковый термин, который нужно иметь в виду.)


3

Прежде всего: все ли попадания одинаково важны и все промахи одинаково важны? Если это так, то нет ничего плохого в том, что ваша нулевая модель так хороша: это просто отличное решение.

Если вы считаете важным иметь хорошие показатели при прогнозировании 1, вы можете вместо этого использовать F-меру. По сути, это среднее гармоническое значение запоминания (какая часть фактических 1 была предсказана как 1) и точности (какая часть предсказанных 1 была фактически 1). Чтобы модель получила высокий балл по этому показателю, ей необходимо:

  1. Найти большинство из 1.
  2. Не часто предсказывают 1, когда это фактически 0.

И это нужно делать обоим одновременно. Даже если ваша модель выполняет только один из 2 практически идеальным образом, у нее будет низкий балл, если она не будет соответствовать другому требованию. https://en.wikipedia.org/wiki/F1_score


Это неправильное правило оценки, которое использует только 1 бит информации из прогнозов. Неправильные правила подсчета очков оптимизируются поддельными моделями.
Фрэнк Харрелл

2

Я рад, что @cbeleites открыл дверь ... Вероятность совпадения или -index, который оказывается равным области ROC в особом случае двоичного , является хорошим обобщением предсказательной дискриминации. Сама кривая ROC имеет высокое соотношение чернил: информация, но область под кривой, потому что она равна вероятности согласования, имеет много приятных особенностей, одна из которых заключается в том, что она не зависит от распространенности поскольку она обусловливает . Это не совсем правильно (используйте обобщенные меры или отношение правдоподобия для достижения этого) и недостаточно чувствительно, чтобы использовать их для сравнения двух моделей, это хорошее резюме одной модели.Y Y = 1 Y R 2 χ 2cYY=1YR2χ2


1

Критерий работы приемника (ROC) http://en.wikipedia.org/wiki/Receiver_operating_characteristic curve и связанные с ним вычисления (а именно Area Under Curve-AUC) обычно используются. в основном вы представляете, что ваш классификатор дает непрерывный ответ (например, между 0 и 1), и вы строите график зависимости чувствительности от частоты ложных тревог (специфичность 1), поскольку порог принятия решения варьируется от 0 до 1. Они были специально разработаны для редких событий (обнаружение врага самолеты?).


1

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.