«Сомнения - это хорошо. Замешательство отличное. Вопросы - это здорово.
Все это попытки расширить мудрость ума ».
- Манодж Арора

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

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

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

Путаница Метрикс

Матрица неточностей состоит из прогнозируемого и фактического значений.

В этой матрице путаницы зеленый фон - это «правильные» ячейки:

  1. ИСТИННО ОТРИЦАТЕЛЬНЫЙ (TN): значения, предсказанные классификаторами, ложны, а на самом деле ложны.
  2. ИСТИННЫЙ ПОЛОЖИТЕЛЬНЫЙ (TP): значения, предсказанные классификаторами, верны, но на самом деле верны.

А красный фон - это «ошибочные» ячейки:

  1. ЛОЖНО-ОТРИЦАТЕЛЬНЫЙ (FN): значения, предсказанные классификаторами, являются ложными, но на самом деле истинными. Это также называется ошибкой ТИПА II.
  2. ЛОЖНО ПОЛОЖИТЕЛЬНО (FP): значения, предсказанные классификаторами, верны, а на самом деле - ложны. Это также называется ошибкой ТИПА I.

Зачем нужна матрица путаницы?

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

Вы можете подумать, зачем нам матрица неточностей, если у нас есть точность, чтобы проверить наши результаты. Давайте проверим нашу точность 1-го !!

Имеется 1000 точек данных для отрицательного класса и 30 точек данных для положительного класса. Вот как мы рассчитаем точность:

Общие значения результатов:

TP = 20, TN = 950, FP = 20, FN = 10

Итак, точность нашей модели оказывается:

Здесь наша точность 97%, что неплохо! Но это дает неверное представление о результате.

Наша модель гласит: «Она может предсказать людей, инфицированных COVID, в 97% случаев». Однако он делает наоборот. Он предсказывает людей, которые не будут иметь положительный результат на COVID с точностью 97%, в то время как положительный результат на COVID будет распространять вирус!

Как вы думаете, это правильный способ измерения нашего результата ??? Разве мы не должны измерять, сколько положительных случаев мы можем правильно предсказать, чтобы остановить распространение заразного COVID? Или, может быть, из правильно спрогнозированных случаев сколько положительных случаев для проверки надежности нашей модели?

Здесь мы сталкиваемся с двойным понятием точность и отзыв.

Точность против отзыва

Точность

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

Точность рассчитывается по:

Напомнить

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

Отзыв рассчитывается по:

Примечание. Напомним, сколько положительных моментов вы можете найти.

Точность показывает, сколько мусора в ваших прогнозируемых плюсах.

Оценка F1

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

Оценка F1 = 2 * (точность * отзыв / точность + отзыв)

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

Другие формулы

  1. ИСТИННАЯ ПОЛОЖИТЕЛЬНАЯ СТАВКА (чувствительность)

TPR = TP / (TP + FN)

2. ЛОЖНАЯ ПОЛОЖИТЕЛЬНАЯ СТАВКА (специфичность)

FPR = TN / (TN + FP)

Матрица путаницы с использованием scikit-learn на Python

Я использовал самую полезную библиотеку python scikit-learn, чтобы объяснить матрицу путаницы.

Набор данных доступен на Kaggle, то есть титанический набор данных.

Оценка алгоритма

Истинно положительный - 97

Истинно отрицательный - 47

Ложноположительный результат - 12

Ложноотрицательный результат - 23

Теперь можно оценить модель, используя показатели производительности.

Получение F-балла

Справочные ссылки

  1. Ссылка на YouTube: Основы машинного обучения Матрица путаницы от statquest.
  2. Https://machinelearningmaster.com/confusion-matrix-machine-learning/
  3. КНИГА: https://www.oreilly.com/library/view/machine-learning-quick/9781788830577/35d1aa26-9a98-4fd0-ada0-af922e84579d.xhtml

Надеюсь, вы должны понимать матрицу путаницы. Большое спасибо за чтение.