簡體   English   中英

帶有二進制混淆矩陣的sklearns.metrics.classification_report和sklearns.metrics.f1_score中每個F1得分值之間的差異

[英]Differences between each F1-score values in sklearns.metrics.classification_report and sklearns.metrics.f1_score with a binary confusion matrix

我有(true)布爾值和預測的布爾值,例如:

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

我看到的4個值f1-score0.6956520.860.700.80 )。 我想知道每個值之間的區別是什么以及如何計算它們。

我認為0.6956520.70是同一回事。 在scikit-learn中, f1_score 文檔解釋了在默認模式下:F1分數在二​​進制分類中為positive class

同樣,使用F1得分公式,您可以輕松達到0.86的得分。 F1分數的公式是

F1 = 2 * (precision * recall) / (precision + recall)

編輯:

混淆矩陣是這樣的:

                    Prediction
                    FALSE | TRUE
True Value  FALSE    67      0
            TRUE     21      24

67 = True Negative, 0 = False Negative
21 = False Positive, 24  = True Positive

在查找平均/總計時,公式將使用您在注釋中所說的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM