Интересно, как вычислить точность и вспомнить использование путаницы для решения задачи классификации нескольких классов. В частности, наблюдение может быть назначено только его наиболее вероятному классу / метке. Я хотел бы вычислить:
- Точность = TP / (TP + FP)
- Напомним = TP / (TP + FN)
для каждого класса, а затем вычислите микро-усредненную F-меру.
Ответы:
В случае 2-гипотезы матрица смешения обычно имеет вид:
где я использовал что-то похожее на вашу запись:
Исходя из необработанных данных, значения в таблице обычно являются подсчетами для каждого вхождения в тестовых данных. Исходя из этого, вы сможете рассчитать необходимые вам количества.
редактировать
Обобщением для многоклассовых задач является суммирование по строкам / столбцам матрицы путаницы. Учитывая, что матрица ориентирована, как указано выше, т. Е. Что данная строка матрицы соответствует конкретному значению для «истины», имеем:
То есть точность - это доля событий, где мы правильно объявили из всех случаев, когда алгоритм объявил . И наоборот, отзыв - это доля событий, где мы правильно объявили из всех случаев, когда истинным состоянием мира является .я я яi i i i
источник
i
не определена, если нет случаев, когда алгоритм объявляетi
. Отзыв для классаi
не определен, если тестовый набор не включает классi
.Хорошая сводная статья, в которой рассматриваются эти метрики для многоклассовых задач:
Аннотация гласит:
источник
Используя sklearn и numpy:
Чтобы получить общие показатели точности и отзыва, используйте затем
источник