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 预测的标签(按预测分数排名)。请注意,这里不涵盖多标签情况。

阅读更多的 User Guide

参数:
y_true形状类似阵列(n_samples,)

真正的标签。

y_score形状类似阵列(n_samples,)或(n_samples,n_classes)

目标分数。这些值可以是概率估计值或非阈值决策值(由 decision_function 在一些分类器上)。二进制情况期望具有形状(n_samples,)的分数,而多类情况期望具有形状(n_samples,n_classes)的分数。在多班级情况下,班级分数的顺序必须对应于 labels ,如果提供的话,或者按照中标签的数字或词典顺序排列 y_true .如果 y_true 不包含所有标签, labels 必须提供。

kint,默认=2

为找到正确标签而考虑的最有可能结果的数量。

normalize布尔,默认=True

如果 True ,返回正确分类的样本的部分。否则,返回正确分类的样本数量。

sample_weight形状类似数组(n_samples,),默认=无

样本重量。如果 None ,所有样本的重量相同。

labels形状类似数组(n_classes,),默认=无

仅限多类。对中的类进行索引的标签列表 y_score .如果 None ,中标签的数字或词典顺序 y_true 采用了如果 y_true 不包含所有标签, labels 必须提供。

返回:
score浮子

前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)