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_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.
- Возвращает:
-
- 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) 0.75 >>> # Not normalizing gives the number of "correctly" classified samples >>> top_k_accuracy_score(y_true, y_score, k=2, normalize=False) 3.0
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.metrics.top_k_accuracy_score.html