2016-03-07 82 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