【发布时间】:2019-04-23 00:20:26
【问题描述】:
我有一些类不平衡和一个简单的基线分类器,它将多数类分配给每个样本:
from sklearn.metrics import precision_score, recall_score, confusion_matrix
y_true = [0,0,0,1]
y_pred = [0,0,0,0]
confusion_matrix(y_true, y_pred)
这会产生
[[3, 0],
[1, 0]]
这意味着 TP=3,FP=1,FN=0。
到目前为止,一切都很好。现在我想计算精度和召回率的微观平均值。
precision_score(y_true, y_pred, average='micro') # yields 0.75
recall_score(y_true, y_pred, average='micro') # yields 0.75
我对精度没问题,但为什么召回率不是 1.0?考虑到 FP > 0 和 FN == 0,在这个例子中它们怎么可能是一样的呢?我知道这一定与微平均有关,但我无法理解这一点。
【问题讨论】:
标签: scikit-learn precision-recall