Как вы рассчитываете точность и вспоминаете для мультиклассовой классификации, используя путаницу?


92

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

  • Точность = TP / (TP + FP)
  • Напомним = TP / (TP + FN)

для каждого класса, а затем вычислите микро-усредненную F-меру.


Это DOCX , Оценка модели классификации - Что точность и напомнить мне сказать? от Compumine дает простое введение в матрицу путаницы и полученные из нее меры. Это помогает создать путаницу матрицы, точность, отзыв, специфичность и точность.
Jayran Choopan

4
найти ответ здесь. Очень хорошее объяснение youtube.com/watch?v=FAr2GmWNbT0

Ссылка Compumine мертва.
Трентон

Что касается мультикласса, то, что я понимаю, что вдоль строк (ось = 0) - это возврат, а вдоль столбцов (ось = 1) - точность. rxnlp.com/…
MD ZIA ULLAH

Ответы:


69

В случае 2-гипотезы матрица смешения обычно имеет вид:

       | Declare H1  |  Declare H0 |
|Is H1 |    TP       |   FN        |
|Is H0 |    FP       |   TN        |

где я использовал что-то похожее на вашу запись:

  • TP = истинно положительный (объявите H1, если, по правде говоря, H1),
  • FN = ложноотрицательный (объявите H0, если, по правде говоря, H1),
  • FP = ложно-положительный
  • TN = истинно отрицательный

Исходя из необработанных данных, значения в таблице обычно являются подсчетами для каждого вхождения в тестовых данных. Исходя из этого, вы сможете рассчитать необходимые вам количества.

редактировать

Обобщением для многоклассовых задач является суммирование по строкам / столбцам матрицы путаницы. Учитывая, что матрица ориентирована, как указано выше, т. Е. Что данная строка матрицы соответствует конкретному значению для «истины», имеем:

Precision i=MiijMji

Recall i=MiijMij

То есть точность - это доля событий, где мы правильно объявили из всех случаев, когда алгоритм объявил . И наоборот, отзыв - это доля событий, где мы правильно объявили из всех случаев, когда истинным состоянием мира является .я я яiiii


1
В моем случае существует более 10 классов, поэтому я предполагаю, что FN будет означать общее количество объявлений класса H (i), i! = 1; и это же FP?
daiyue

Привет, мне интересно, какие будут значения для Precision and Recall, если TP + FP = 0 и TP + FN = 0 для какого-то фактического класса в матрице путаницы.
daiyue

Точность для класса iне определена, если нет случаев, когда алгоритм объявляет i. Отзыв для класса iне определен, если тестовый набор не включает класс i.
Дейв

Моя конечная цель - вычислить Macro F Measure, поэтому мне нужна точность и вспомнить значения для каждого класса i; Итак, как я могу вычислить меру Macro-F, если два вышеупомянутых случая появляются в некотором классе i? В частности, каково значение для Fi, и считается ли класс i одним из классов M, что количество элементов в M будет учитываться как знаменатель формулы для вычисления меры Macro F.
daiyue

1
sry, не могли бы вы объяснить свою идею более четко?
daiyue

31

Хорошая сводная статья, в которой рассматриваются эти метрики для многоклассовых задач:

  • Соколова М. & Лапалме Г. (2009). Систематический анализ показателей эффективности для задач классификации. Обработка информации и управление, 45 , с. 427-437. ( pdf )

Аннотация гласит:

В этой статье представлен систематический анализ двадцати четырех показателей эффективности, используемых в полном спектре классификационных задач машинного обучения, т. Е. Двоичных, мультиклассовых, многокомпонентных и иерархических. Для каждой задачи классификации исследование связывает ряд изменений в матрице путаницы с конкретными характеристиками данных. Затем анализ концентрируется на типе изменений в матрице путаницы, которые не изменяют меру, поэтому сохраняют оценку классификатора (неизменность меры). Результатом является мера таксономии инвариантности меры в отношении всех соответствующих изменений распределения меток в задаче классификации. Этот формальный анализ подтверждается примерами приложений, в которых свойства инвариантности мер приводят к более надежной оценке классификаторов.


2
Добро пожаловать на сайт, @JamesTaylor. Не могли бы вы дать краткое изложение информации в связанном документе, чтобы помочь читателям решить, нужно ли им это, и в случае, если ссылка не работает?
gung - Восстановить Монику

8

Используя sklearn и numpy:

from sklearn.metrics import confusion_matrix
import numpy as np

labels = ...
predictions = ...

cm = confusion_matrix(labels, predictions)
recall = np.diag(cm) / np.sum(cm, axis = 1)
precision = np.diag(cm) / np.sum(cm, axis = 0)

Чтобы получить общие показатели точности и отзыва, используйте затем

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