Spec-Zone.ru › scikit-learn

Точность по 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API