Top-K 准确率评分#
- sklearn.metrics.top_k_accuracy_score(y_true, y_score, *, k=2, normalize=True, sample_weight=None, labels=None)[source]#
- Top-k准确率分类评分。 - 此指标计算正确标签位于预测的top - k个标签(按预测分数排序)中的次数。请注意,这里不包括多标签的情况。- 更多信息请阅读 用户指南 - 参数:
- y_truearray-like of shape (n_samples,)
- 真实标签。 
- y_scorearray-like of shape (n_samples,) or (n_samples, n_classes)
- 目标分数。这些可以是概率估计或非阈值决策值(由某些分类器上的 decision_function 返回)。二元情况期望形状为 (n_samples,) 的分数,而多类情况期望形状为 (n_samples, n_classes) 的分数。在多类情况下,类分数的顺序必须与提供的 - labels的顺序对应,否则对应于- y_true中标签的数值或词典顺序。如果- y_true不包含所有标签,则必须提供- labels。
- kint, default=2
- 考虑查找正确标签的最可能结果的数量。 
- normalizebool, default=True
- 如果 - True,则返回正确分类样本的比例。否则,返回正确分类样本的数量。
- sample_weightarray-like of shape (n_samples,), default=None
- 样本权重。如果为 - None,则所有样本都具有相同的权重。
- labelsarray-like of shape (n_classes,), default=None
- 仅限多类。标签列表,用于索引 - y_score中的类。如果为- None,则使用- y_true中标签的数值或词典顺序。如果- y_true不包含所有标签,则必须提供- labels。
 
- 返回:
- scorefloat
- Top-k准确率得分。当 - normalize == True时,最佳性能为 1,当- normalize == False时为样本数量。
 
 - 另请参见 - 准确率评分
- 计算准确率得分。默认情况下,该函数将返回正确预测的比例除以预测总数。 
 - 备注 - 如果两个或多个标签被赋予相同的预测分数,则将首先选择具有最高索引的标签。如果正确标签由于此原因落在阈值之后,这可能会影响结果。 - 示例 - >>> 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) 
