召回率#

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_truey_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])