top_k_accuracy_score#

sklearn.metrics.top_k_accuracy_score(y_true, y_score, *, k=2, normalize=True, sample_weight=None, labels=None)[原始碼]#

Top-k 準確度分類分數。

此指標計算正確標籤位於預測的前 k 個標籤(依預測分數排序)內的次數。請注意,這裡不涵蓋多標籤的情況。

使用者指南中閱讀更多內容

參數:
y_truearray-like,形狀為 (n_samples,)

真實標籤。

y_scorearray-like,形狀為 (n_samples,) 或 (n_samples, n_classes)

目標分數。這些可以是機率估計值或未設定閾值的決策值(由某些分類器的decision_function傳回)。二元情況預期分數的形狀為 (n_samples,),而多類別情況則預期分數的形狀為 (n_samples, n_classes)。在多類別情況下,類別分數的順序必須對應到 labels 的順序(如果提供),否則對應到 y_true 中標籤的數值或詞彙順序。如果 y_true 未包含所有標籤,則必須提供 labels

kint,預設值為 2

考量找到正確標籤的最可能結果數量。

normalizebool,預設值為 True

如果為 True,則傳回正確分類的樣本比例。否則,傳回正確分類的樣本數。

sample_weightarray-like,形狀為 (n_samples,),預設值為 None

樣本權重。如果為 None,則所有樣本都會被賦予相同的權重。

labelsarray-like,形狀為 (n_classes,),預設值為 None

僅限多類別。索引 y_score 中類別的標籤清單。如果為 None,則會使用 y_true 中標籤的數值或詞彙順序。如果 y_true 未包含所有標籤,則必須提供 labels

回傳:
scorefloat

top-k 準確度分數。最佳效能為 1,當 normalize == True 時,以及當 normalize == False 時的樣本數。

另請參閱

accuracy_score

計算準確度分數。預設情況下,該函式會傳回正確預測數除以預測總數的比例。

注意事項

在兩個或多個標籤被賦予相等預測分數的情況下,將優先選擇索引最高的標籤。如果正確標籤因為這個原因而落在閾值之後,這可能會影響結果。

範例

>>> import numpy as np
>>> from sklearn.metrics import top_k_accuracy_score
>>> y_true = np.array([0, 1, 2, 2])
>>> y_score = np.array([[0.5, 0.2, 0.2],  # 0 is in top 2
...                     [0.3, 0.4, 0.2],  # 1 is in top 2
...                     [0.2, 0.4, 0.3],  # 2 is in top 2
...                     [0.7, 0.2, 0.1]]) # 2 isn't in top 2
>>> top_k_accuracy_score(y_true, y_score, k=2)
np.float64(0.75)
>>> # Not normalizing gives the number of "correctly" classified samples
>>> top_k_accuracy_score(y_true, y_score, k=2, normalize=False)
np.int64(3)