Здравствуйте, я работаю с sklearn и для того, чтобы лучше понять показатели, я последовал следующий пример precision_score:Как sklearn вычисляет метрику точности_score?
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 вычисления, что приводит следующие действия:
- для этикеток 0 точности TP/(TP + FP) = 2/(2 + 1) = 0,66
- для этикеток 1 точности равен 0/(0 + 2) = 0
- для печати этикеток 2 точность 0/(0 + 1) = 0
и, наконец, sklearn вычисляет значит точность всеми тремя метками: precision = (0.66 + 0 + 0)/3 = 0.22
этот результат дается, если принять эти параметры:
precision_score(y_true, y_pred, average='macro')
с другой стороны, если принять эти параметры, изменяя средний = «микро»:
precision_score(y_true, y_pred, average='micro')
тогда мы получим:
0.33
и если мы возьмем среднее = 'взвешенная':
precision_score(y_true, y_pred, average='weighted')
то получим:
0.22.
Я не понимаю хорошо, как sklearn вычисляет эту метрику, когда средний параметр установлен на «взвешенный» или «микро», I r хотел бы оценить, сможет ли кто-нибудь дать мне ясное объяснение этому.
спасибо, я уже читал, но я хотел бы знать, что взвешивается поддержкой (количество истинных экземпляров для каждой метки) ?. – neo33
Подумайте об этом как о причудливом способе сказать средневзвешенное значение по классу – Merlin
спасибо, но знаете ли вы, если sklearn в документации определяет чувствительность и специфичность? – neo33