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
我認爲你對你的猜測是正確的。 –