Точность/отзыв для многоклассовой многоколоночной классификации

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

Ответы

Ответ 1

Для классификации с несколькими метками у вас есть два пути Сначала рассмотрим следующее.

  • $n $ - это количество примеров.
  • $Y_i $ является назначением метки основной истины $ я ^ {th} $ пример..
  • $x_i $ является $ я ^ {th} $ пример.
  • $h (x_i) $ - это предсказанные метки для $ я ^ {th} $ пример.

Пример на основе

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

  • Точность = $\ frac {1} {n}\sum_ {i = 1} ^ { n}\frac {| Y_ {i}\cap h (x_ {i}) |} {| h (x_ {i}) |} $ , Отношение количества прогнозируемых является правильным. Числитель находит, сколько меток в предсказанном векторе имеет общую с земной истиной, а соотношение вычисляет, сколько из прогнозируемых истинных меток действительно находится в основной истине.
  • Recall = $\ frac {1} {n}\sum_ {i = 1} ^ { n}\frac {| Y_ {i}\cap h (x_ {i}) |} {| Y_ {i} |} $ , Отношение количества фактических ярлыков было предсказано. Числитель находит, сколько меток в предсказанном векторе имеет общий с основной истиной (как указано выше), а затем находит отношение к числу фактических меток, поэтому получает какую-то часть фактических ярлыков.

Существуют и другие показатели.

Ярлык

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

Простым способом является представление общей формы.

Это просто расширение стандартного многоклассового эквивалента.

  • Макро усредненный $\ frac {1} {q}\sum_ {j = 1 } ^ {д} В (TP_ {J}, {FP_ J}, {TN_ J}, {FN_ J}) $

  • Среднее усреднение $B (\ sum_ {j = 1} ^ {q} TP_ {J},\sum_ {J = 1} ^ {д} FP_ {J},\sum_ {J = 1} ^ {д} TN_ {J},\sum_ {J = 1} ^ {д} FN_ {J }) $

Здесь $TP_ {j}, FP_ {j}, TN_ {j}, FN_ { j} $ - это истинные положительные, ложноположительные, истинные отрицательные и ложные отрицательные значения соответственно только для $j ^ {th} $ ярлык.

Здесь $B $обозначает любую метрику на основе путаницы. В вашем случае вы будете подключать стандартные формулы точности и отзыва. Для макросредства вы передаете счет на каждую метку, а затем суммируете, для среднего среднего значения сначала вычисляете счетчики, а затем применяете метрическую функцию.

Вам может быть интересно ознакомиться с кодом для метрик метрик здесь, который является частью пакета mldr в R. Также вам может быть интересно изучить библиотеку многоадресной Java MULAN.

Это хорошая статья, чтобы попасть в разные показатели: Обзор алгоритмов обучения с несколькими метками

Ответ 2

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

(precision(A) + precision(B) + precision(C)) / 3

То же самое для вызова.

Я не эксперт, но это то, что я определил на основе следующих источников:

https://list.scms.waikato.ac.nz/pipermail/wekalist/2011-March/051575.html http://stats.stackexchange.com/questions/21551/how-to-compute-precision-recall-for-multiclass-multilabel-classification

Ответ 3

  • Предположим, что у нас есть проблема классификации с 3 классами с метками A, B и C.
  • Первое, что нужно сделать, это создать матрицу путаницы. Обратите внимание, что значения в диагонали всегда являются истинными позитивами (TP).
  • Теперь, чтобы вычислить отзыв для метки A, вы можете считывать значения из матрицы замешательства и вычислять:

    = TP_A/(TP_A+FN_A)
    = TP_A/(Total gold labels for A)
    
  • Теперь давайте вычислим точность для метки A, вы можете прочитать значения из матрицы путаницы и вычислить:

    = TP_A/(TP_A+FP_A)
    = TP_A/(Total predicted as A)
    
  • Вам просто нужно сделать то же самое для остальных меток B и C. Это относится к любой проблеме классификации нескольких классов.

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

Ответ 4

Простое усреднение будет выполняться, если классы сбалансированы.

В противном случае напомнить, что для каждого реального класса нужно взвешивать по преобладанию класса, а точность для каждого прогнозируемого ярлыка должна быть взвешена по смещению (вероятности) для каждой метки. В любом случае вы получаете точность Rand.

Более прямой способ состоит в том, чтобы сделать нормализованную таблицу непредвиденных ситуаций (разделите на N, чтобы таблица добавляла до 1 для каждой комбинации метки и класса) и добавляла диагональ для получения точности Rand.

Но если классы не сбалансированы, смещение остается, а метод с исправленной вероятностью, такой как каппа, является более подходящим или лучше все еще ROC-анализом или вероятной правильной мерой, такой как информированность (высота над вероятной линией в ROC).