0
我有(真)布尔值和预测的像布尔值:用二进制混淆矩阵
y_true = np.array([True, True, False, False, False, True, False, True, True,
False, True, False, False, False, False, False, True, False,
True, True, True, True, False, False, False, True, False,
True, False, False, False, False, True, True, False, False,
False, True, True, True, True, False, False, False, False,
True, False, False, False, False, False, False, False, False,
False, True, True, False, True, False, True, True, True,
False, False, True, False, True, False, False, True, False,
False, False, False, False, False, False, False, True, False,
True, True, True, True, False, False, True, False, True,
True, False, True, False, True, False, False, True, True,
False, False, True, True, False, False, False, False, False,
False, True, True, False])
y_pred = np.array([False, False, False, False, False, True, False, False, True,
False, True, False, False, False, False, False, False, False,
True, True, True, True, False, False, False, False, False,
False, False, False, False, False, True, False, False, False,
False, True, False, False, False, False, False, False, False,
True, False, False, False, False, False, False, False, False,
False, True, False, False, False, False, False, False, False,
False, False, True, False, False, False, False, True, False,
False, False, False, False, False, False, False, True, False,
False, True, False, False, False, False, True, False, True,
True, False, False, False, True, False, False, True, True,
False, False, True, True, False, False, False, False, False,
False, True, False, False])
我使用以下进口
from sklearn.metrics import f1_score, classification_report, confusion_matrix
混淆矩阵的样子:
print(confusion_matrix(y_true, y_pred))
[[67 0]
[21 24]]
我做:
print("f1_score: %f" % f1_score(y_true, y_pred))
print(classification_report(y_true, y_pred))
我得到:
f1_score: 0.695652
precision recall f1-score support
False 0.76 1.00 0.86 67
True 1.00 0.53 0.70 45
avg/total 0.86 0.81 0.80 112
我看到的f1-score
(0.695652
,0.86
,0.70
,0.80
)4个值。我想知道每个值之间的区别以及它们是如何计算的。
好的,谢谢。我注意到'f1_score(〜y_true,〜y_pred)= 0.86451612903225816'但是如何得到0.80?它似乎是'(45 * f1_score(y_true,y_pred)+ 67 * f1_score(〜y_true,〜y_pred))/(67 + 45)' – scls
我认为你对你的猜测是正确的。 –