Як обчислити точність та згадати в матриці плутанини 3 х 3


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

Як я можу обчислити точність і згадати, щоб стало легко обчислити F1-бал. Нормальна матриця плутанини - це розмірність 2 х 2. Однак, коли це стає 3 х 3, я не знаю, як обчислити точність і згадати.

Відповіді:


19

Якщо ви прокладете визначення точності (він також називається позитивним прогнозним значенням PPV) і згадуєте (він також чутливість), ви побачите, що вони відносяться до одного класу, незалежному від будь-яких інших класів:

Нагадування або сенситивність - це частка випадків, правильно визначених як належність до класу c серед усіх випадків, які справді належать до класу c .
(З огляду на те, що у нас є випадок, який справді належить до " c ", яка ймовірність прогнозувати це правильно?)

Точність або позитивне прогнозне значення PPV - це частка випадків, правильно ідентифікованих як належність до класу c, серед усіх випадків, про які класифікатор стверджує, що вони належать до класу c .
Іншими словами, із тих випадків, за якими передбачається, що належать до класу c , яка частка дійсно належить до класу c ? (З огляду на передбачення " с ", яка ймовірність правильності?)

негативне передбачувальне значення NPV тих випадків, за якими передбачається, що вони не належать до класу c , яка частка дійсно не належить до класу c ? (З огляду на передбачення "не с ", яка ймовірність бути правильною?)

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

схема розрахунку

Джерело: Белеїт, С .; Salzer, R. & Sergo, V. Валідація моделей м'якої класифікації за допомогою часткового членства в класі: розширена концепція чутливості та співпраці. застосовано для оцінювання тканин астроцитоми, Chemom Intell Lab Syst, 122, 12 - 22 (2013). DOI: 10.1016 / j.chemolab.2012.12.003


Дуже дякую. Я вже розумію аналогію, описану у вашому рішенні. Я прочитаю папір. Я прийму це як відповідь. Я не розумію PPV І NPV. Будь ласка, поясніть ці поняття як графічні, як пояснили Sens і Spec, і я прийму вашу відповідь.
user22149

3

Зменшуючи дані до примусового вибору (класифікації) і не записуючи, чи були "закриті дзвінки", ви отримуєте статистичні оцінки мінімальної інформації з мінімальною точністю, крім того, що таємно припускаєте дивну функцію корисності / втрати / вартості та використовуєте довільні пороги . Набагато краще було б використовувати максимальну інформацію, яка б включала ймовірність членства в класі, а не вимушений вибір.


1

Найпростіший спосіб - взагалі не використовувати confusion_matrix, Використовуйте klasification_report (), він дасть вам усе, що вам колись потрібно, ура!

Редагувати:
це формат confusion_matrix ():
[[TP, FN]
[FP, TN]]
І звіт про класифікацію дає все це


Що якщо ви використовуєте 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

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, роблять помилково позитивним. Тому

Pa = 10/18 = 0,55 Ra = 10/17 = 0,59

Тепер точність і відкликання для класу B - це Pb і Rb. Для класу B справжній позитивний фактичний B, прогнозований як B, тобто комірка, що містить значення 12, а решта двох комірок у цьому стовпчику роблять помилково позитивними, так

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 Avg Recall = (0,59 * 17 + 0,6 * 20 + 0,5 * 18) / 55 = 31,03 / 55 = 0,56

Я сподіваюся, що це допомагає

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.