你好,我正在使用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.2222222222222但我无法理解 sklearn 如何计算这个结果,因为在官方页面中说正在计算下一个公式:tp/(tp + fp),其中 tp 是真阳性的数量,fp 是误报的数量,但也使用名为"macro"的参数计算每个标签的指标,并找到它们的未加权平均值,这没有考虑标签不平衡。我将不胜感激对此示例的任何解释,感谢您的支持。
第一步是计算您拥有的每个标签的精度:
- 对于标签 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