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