2016-11-21 3 views

ответ

2

первый, ваша матрица расположена вверх дном. Вы хотите упорядочить ярлыки так, чтобы на диагонали были установлены истинные положительные значения [(0,0), (1,1), (2,2)], это расположение, которое вы найдете с создаваемыми матрицами смятения от sklearn и других пакетов.

После того, как мы есть вещи, отсортированные в правильном направлении, мы можем взять страницу из this answer и сказать, что:

  1. Истинные Положительных находятся на диагональном положении
  2. ложных срабатываний столбцам суммы. Без диагонали
  3. Ложные негативы - это рядовые суммы. Без диагонали.

\ Затем мы принимаем некоторые формулы от sklearn docs для точности и запоминания. И положил все это в код:

import numpy as np 
cm = np.array([[2,1,0], [3,4,5], [6,7,8]]) 
true_pos = np.diag(cm) 
false_pos = np.sum(cm, axis=0) - true_pos 
false_neg = np.sum(cm, axis=1) - true_pos 

precision = np.sum(true_pos/true_pos+false_pos) 
recall = np.sum(true_pos/true_pos + false_neg) 

Поскольку мы удалим истинные позитивы для определения false_positives/негативов только добавить их обратно ... мы можем упростить далее, пропуская пару шагов:

true_pos = np.diag(cm) 
precision = np.sum(true_pos/np.sum(cm, axis=0)) 
recall = np.sum(true_pos/np.sum(cm, axis=1)) 
+0

спасибо за ответ. когда я запускаю его, он печатает 3 числа для точности и напоминания (как показано на рисунке выше). Но мне нужно только 1 номер для точности и 1 номер для вызова. Как я могу получить доступ к этому? – vahideh

+0

извините, забыли добавить их в конце. – PabTorre

+0

большое спасибо. Мне нужно это для моей диссертации. поэтому мне тоже нужно рассчитать точность. Итак, что может быть «tn» в этой матрице? – vahideh

Смежные вопросы