2016-03-07 4 views
0

Здравствуйте, я работаю с sklearn и для того, чтобы лучше понять показатели, я последовал следующий пример precision_score:Как понять точность метрики sklearn?

from sklearn.metrics import precision_score 
y_true = [0, 1, 2, 0, 1, 2] 

y_pred = [0, 2, 1, 0, 0, 1] 
print(precision_score(y_true, y_pred, average='macro')) 

результат, который я получил был следующим:

0,222222222222

но я не могу понять, как sklearn вычисляет этот результат, поскольку на официальной странице говорится, что вычисляет следующую формулу: tp/(tp + fp), где tp - число истинных положительных значений, а fp - количество ложных срабатываний, но также используется параметр «макрос», который вычисляет метрики для каждая метка, и найти их невзвешенное значение, и это не учитывает дисбаланс метки. Я бы оценил любое объяснение этого примера благодаря поддержке.

ответ

2

Первого шаг для расчета точности для каждой этикетки, что у вас есть:

  • для этикеток 0 точности tp/(tp + fp) = 2/(2 + 1) = 0.66
  • для этикеток 1 точности 0/(0 + 2) = 0
  • для этикеток 2 точности является 0/(0 + 1) = 0

Заключительный шаг - рассчитать среднюю точность всеми тремя метками: precision = (0.66 + 0 + 0)/3 = 0.22

+0

Спасибо за поддержку, это очень понятно ваше объяснение Алексей. – neo33

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