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 个标签中的次数(按预测得分排序)。请注意,这里不包括多标签情况。

更多信息请参阅 用户指南

Parameters:
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

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

normalizebool, 默认=True

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

sample_weight类数组,形状为 (n_samples,), 默认=None

样本权重。如果为 None ,所有样本都被赋予相同的权重。

labels类数组,形状为 (n_classes,), 默认=None

仅多分类。在 y_score 中索引类别的标签列表。 如果为 None ,则使用 y_true 中标签的数字或字典顺序。如果 y_true 不包含所有标签,则必须提供 labels

Returns:
scorefloat

Top-k 准确率得分。当 normalize == True 时,最佳性能为 1,当 normalize == False 时,为样本数量。

See also

accuracy_score

计算准确率得分。默认情况下,函数将返回正确预测的比例除以预测总数。

Notes

在两个或多个标签被分配相同预测得分的情况下,将优先选择索引最高的标签。这可能会影响结果,如果正确标签因这种情况而落在阈值之后。

Examples

>>> 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 在前 2 名
...                     [0.3, 0.4, 0.2],  # 1 在前 2 名
...                     [0.2, 0.4, 0.3],  # 2 在前 2 名
...                     [0.7, 0.2, 0.1]]) # 2 不在前 2 名
>>> top_k_accuracy_score(y_true, y_score, k=2)
0.75
>>> # 不归一化给出“正确”分类样本的数量
>>> top_k_accuracy_score(y_true, y_score, k=2, normalize=False)
3