召回率#
- sklearn.metrics.recall_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')[來源]#
計算召回率。
召回率是
tp / (tp + fn)
的比率,其中tp
是真陽性的數量,而fn
是假陰性的數量。召回率直觀地表示分類器找到所有正樣本的能力。最佳值為 1,最差值為 0。
除了
binary
目標之外的支援,是通過將 多類別 (multiclass) 和 多標籤 (multilabel) 資料視為一組二元問題,每個標籤一個來實現的。對於二元 (binary)情況,設定average='binary'
將返回pos_label
的召回率。如果average
不是'binary'
,則會忽略pos_label
,並計算兩個類別的召回率,然後取平均值或兩者都返回 (當average=None
時)。同樣地,對於 多類別 (multiclass) 和 多標籤 (multilabel) 目標,所有labels
的召回率會根據average
參數返回或取平均值。使用labels
來指定要計算召回率的標籤集合。請在 使用者指南 中閱讀更多內容。
- 參數:
- y_true1 維類陣列,或標籤指示器陣列 / 稀疏矩陣
真實(正確)目標值。
- y_pred1 維類陣列,或標籤指示器陣列 / 稀疏矩陣
分類器返回的估計目標。
- labels類陣列,預設值為 None
當
average != 'binary'
時要包含的標籤集合,以及如果average is None
時它們的順序。可以排除資料中存在的標籤,例如在多類別分類中排除「負類別」。可以包含資料中不存在的標籤,並且將「分配」0 個樣本。對於多標籤目標,標籤是欄索引。預設情況下,會使用y_true
和y_pred
中所有已排序的標籤。在版本 0.17 中變更:針對多類別問題改進了參數
labels
。- pos_labelint、float、bool 或 str,預設值為 1
如果
average='binary'
且資料為二元資料時要報告的類別,否則此參數將被忽略。對於多類別或多標籤目標,設定labels=[pos_label]
且average != 'binary'
以僅報告一個標籤的指標。- average{‘micro’、‘macro’、‘samples’、‘weighted’、‘binary’} 或 None,預設值為 ‘binary’
此參數對於多類別/多標籤目標是必要的。如果為
None
,則會返回每個類別的指標。否則,它會決定對資料執行的平均類型‘binary’
:僅報告
pos_label
指定的類別的結果。這僅適用於目標 (y_{true,pred}
) 為二元的情況。‘micro’
:通過計算總真陽性、假陰性和假陽性來全域計算指標。
‘macro’
:計算每個標籤的指標,並找出它們的未加權平均值。這不會考慮標籤不平衡的問題。
‘weighted’
:計算每個標籤的指標,並找出它們的平均值,該平均值會根據支援(每個標籤的真實實例數)進行加權。這會更改「macro」以考慮標籤不平衡;它可能會導致 F 分數不在精確度和召回率之間。加權召回率等於準確度。
‘samples’
:計算每個實例的指標,並找出它們的平均值(僅對於多標籤分類有意義,在此情況下,它與
accuracy_score
不同)。
- sample_weight形狀為 (n_samples,) 的類陣列,預設值為 None
樣本權重。
- zero_division{“warn”、0.0、1.0、np.nan},預設值為 “warn”
設定當出現零除法時要返回的值。
注意事項
如果設定為 “warn”,則其作用類似於 0,但也會引發警告。
如果設定為
np.nan
,則會將這些值從平均值中排除。
在版本 1.3 中新增:新增了
np.nan
選項。
- 返回:
- recallfloat(如果 average 不是 None)或形狀為 (n_unique_labels,) 的浮點數陣列
二元分類中正類的召回率,或多類別任務中每個類別的召回率的加權平均值。
另請參閱
精確度、召回率、F 分數支援 (precision_recall_fscore_support)
計算每個類別的精確度、召回率、F 度量和支援。
精確度 (precision_score)
計算
tp / (tp + fp)
的比率,其中tp
是真正例的數量,而fp
是假正例的數量。平衡準確率 (balanced_accuracy_score)
計算平衡準確度以處理不平衡的資料集。
多標籤混淆矩陣 (multilabel_confusion_matrix)
計算每個類別或樣本的混淆矩陣。
PrecisionRecallDisplay.from_estimator
繪製給定估算器和一些資料的精確度-召回率曲線。
PrecisionRecallDisplay.from_predictions
繪製給定二元類別預測的精確度-召回率曲線。
注意事項
當
真正例 + 假負例 == 0
時,召回率會回傳 0 並引發UndefinedMetricWarning
。此行為可以使用zero_division
進行修改。範例
>>> import numpy as np >>> from sklearn.metrics import recall_score >>> y_true = [0, 1, 2, 0, 1, 2] >>> y_pred = [0, 2, 1, 0, 0, 1] >>> recall_score(y_true, y_pred, average='macro') 0.33... >>> recall_score(y_true, y_pred, average='micro') 0.33... >>> recall_score(y_true, y_pred, average='weighted') 0.33... >>> recall_score(y_true, y_pred, average=None) array([1., 0., 0.]) >>> y_true = [0, 0, 0, 0, 0, 0] >>> recall_score(y_true, y_pred, average=None) array([0.5, 0. , 0. ]) >>> recall_score(y_true, y_pred, average=None, zero_division=1) array([0.5, 1. , 1. ]) >>> recall_score(y_true, y_pred, average=None, zero_division=np.nan) array([0.5, nan, nan])
>>> # multilabel classification >>> y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]] >>> y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]] >>> recall_score(y_true, y_pred, average=None) array([1. , 1. , 0.5])