你好我正在使用sklearn,为了更好地理解指标,我遵循了以下的precision_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如何计算这个结果,因为在官方页面中说这是计算下一个公式:tp /(tp + fp)其中tp是真阳性的数量,fp是误报的数量,但是也正在使用名为“宏”的参数来计算每个标签的指标,并找到它们的未加权平均值,这不会考虑标签不平衡。 我要感谢对此示例的任何解释,感谢您的支持。
答案 0 :(得分:2)
第一步是计算每个标签的精度:
tp / (tp + fp) = 2 / (2 + 1) = 0.66
0 / (0 + 2) = 0
0 / (0 + 1) = 0
最后一步是通过所有三个标签计算平均精度:precision = (0.66 + 0 + 0) / 3 = 0.22