Как рассчитать точность и вспомнить в матрице путаницы 3 x 3

12
                  Predicted
                    class
               Cat  Dog Rabbit
  Actual class
           Cat   5    3      0
           Dog   2    3      1
        Rabbit   0    2     11

Как я могу рассчитать точность и вспомнить, чтобы стало легко рассчитать F1-счет. Нормальная матрица путаницы - это размерность 2 x 2. Тем не менее, когда он становится 3 х 3, я не знаю, как рассчитать точность и вспомнить.

user22149
источник

Ответы:

19

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

Напомним, или чувствительность - это доля случаев, правильно определенных как принадлежащих классу c, среди всех случаев, которые действительно принадлежат к классу c .
(Учитывая, что у нас есть случай, действительно принадлежащий « с », какова вероятность правильного прогнозирования?)

Точность или положительная прогностическая ценность PPV - это доля случаев, правильно определенных как принадлежащих к классу c, среди всех случаев, когда классификатор утверждает, что они принадлежат к классу c .
Другими словами, из тех случаев, которые, как предсказывают, принадлежат классу c , какая доля действительно принадлежит классу c ? (Учитывая предсказание « с », какова вероятность того, чтобы быть правильным?)

Отрицательное прогностическое значение NPV в тех случаях, которые, как прогнозировалось, не относятся к классу c , какая доля действительно не принадлежит классу c ? (Учитывая прогноз «не с », какова вероятность того, чтобы быть правильным?)

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

схема расчета

Источник: Beleites, C .; Salzer, R. & Sergo, V. Проверка моделей мягкой классификации с использованием частичного членства в классе: расширенная концепция чувствительности & co. применяется для классификации тканей астроцитомы, Chemom Intell Lab Syst, 122, 12 - 22 (2013). DOI: 10.1016 / j.chemolab.2012.12.003

cbeleites недоволен SX
источник
Спасибо. Я уже понимаю аналогию, описанную в вашем решении. Я буду читать бумаги. Я приму это как ответ. Я не понимаю PPV и NPV. Пожалуйста, объясните эту концепцию как графическую, так как Sens и Spec были объяснены, и я приму ваш ответ.
user22149
3

Сокращая данные до принудительного выбора (классификации) и не регистрируя, были ли какие-либо "близкие вызовы", вы получаете статистические оценки минимальной точности с минимальной информацией, в дополнение к тайному предположению о странной функции полезности / потерь / затрат и использовании произвольных пороговых значений. , Было бы гораздо лучше использовать максимум информации, которая включала бы вероятность членства в классе, а не принудительный выбор.

Фрэнк Харрелл
источник
1

Самый простой способ - вообще не использовать confusion_matrix. Использоватьification_report (), он даст вам все, что вам когда-либо нужно, ура ...

Изменить:
это формат для confusion_matrix ():
[[TP, FN]
[FP, TN]]
И отчет о классификации дает все это

Omkaar.K
источник
Это если вы используете Python ///
Omkaar.K
0

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

import pandas as pd
from sklearn.metrics import classification_report

results = pd.DataFrame(
    [[1, 1],
     [1, 2],
     [1, 3],
     [2, 1],
     [2, 2],
     [2, 3],
     [3, 1],
     [3, 2],
     [3, 3]], columns=['Expected', 'Predicted'])

print(results)
print()
print(classification_report(results['Expected'], results['Predicted']))

Чтобы получить следующий вывод

   Expected  Predicted
0         1          1
1         1          2
2         1          3
3         2          1
4         2          2
5         2          3
6         3          1
7         3          2
8         3          3

             precision    recall  f1-score   support

          1       0.33      0.33      0.33         3
          2       0.33      0.33      0.33         3
          3       0.33      0.33      0.33         3

avg / total       0.33      0.33      0.33         9
Steztric
источник
0

Ниже приведен пример мультиклассовой матрицы путаницы, предполагающей, что метками наших классов являются A, B и C.

A / P A B C Сумма
A 10 3 4 17
B 2 12 6 20
C 6 3 9 18

Сумма 18 18 19 55

Теперь мы вычислим три значения для Precision и Recall каждого и назовем их Pa, Pb и Pc; и аналогично Ra, Rb, Rc.

Мы знаем Точность = TP / (TP + FP), поэтому для истинного положительного значения Pa будет действительное значение A, прогнозируемое как A, т. Е. 10, остальные две ячейки в этом столбце, будь то B или C, делают False Positive. Так

Па = 10/18 = 0,55 Ra = 10/17 = 0,59

Теперь точность и отзыв для класса B - это Pb и Rb. Для класса B истинно положительным является фактический B, предсказанный как B, то есть ячейка, содержащая значение 12, а остальные две ячейки в этом столбце делают False Positive, поэтому

Pb = 12/18 = 0,67 Rb = 12/20 = 0,6

Аналогично Pc = 9/19 = 0,47 Rc = 9/18 = 0,5

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

Средняя точность = (0,55 * 17 + 0,67 * 20 + 0,47 * 18) / 55 = 31,21 / 55 = 0,57 Среднее количество отзывов = (0,59 * 17 + 0,6 * 20 + 0,5 * 18) / 55 = 31,03 / 55 = 0,56

Я надеюсь, что это помогает

Найер Масуд
источник