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


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=Mii∑jMji

Recall i=Mii∑jMij

То есть точность - это доля событий, где мы правильно объявили из всех случаев, когда алгоритм объявил . И наоборот, отзыв - это доля событий, где мы правильно объявили из всех случаев, когда истинным состоянием мира является .я я я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.