Точность по k лучшим результатам
- sklearn.metrics.top_k_accuracy_score(y_true, y_score, *, k=2, normalize=True, sample_weight=None, labels=None)[source]
-
Метрика точности по k лучшим результатам классификации.
Эта метрика вычисляет количество случаев, когда правильный метка входит в число
kпредсказанных меток (ранжированных по предсказанным оценкам). Обратите внимание, что случай многоклассовой классификации здесь не рассматривается.Подробнее см. в Руководстве пользователя
- Параметры:
-
- y_truearray-like с формой (n_samples,)
-
Истинные метки.
- y_scorearray-like с формой (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_weightarray-like с формой (n_samples,), по умолчанию=None
-
Веса образцов. Если
None, всем образцам присваивается одинаковый вес. - labelsarray-like с формой (n_classes,), по умолчанию=None
-
Только для многоклассовой классификации. Список меток, индексирующих классы в
y_score. ЕслиNone, используется числовой или лексикографический порядок меток вy_true. Еслиy_trueне содержит все метки,labelsнеобходимо предоставить.
- Возвращаемые значения:
-
- scorefloat
-
Оценка точности по 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)
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.metrics.top_k_accuracy_score.html